2017-07-21 11 views
0

私は子ノードなし(引数があればと)のみ親ノードをインポートしたいいくぶんこのpowershellを使用してXMLファイルからすべての子ノードを残して親ノードのみをインポートする方法はありますか?

<parent> 
    <child1> 
    <subchild11/> 
    <subchild12/> 
    </child1> 
    <child2> 
    <subchild21/> 
    <subchild22/> 
    </child2> 
    </parent> 

のようなXMLファイルを持っていました。次に、この親ノードを持つ新しいxmlを作成し、私の希望に子を追加したいと思います。 CreateNode()を使用して親ノードを作成したくありません。

可能ですか?私はどこでもそれを見つけることができませんでした。

答えて

1

XMLをインポートして、親ノードからすべての子を削除できます。

$xmlDocument = [Xml](Get-Content 'file.xml') 
$parent = $xmlDocument.ChildNodes[0] 
# Remove all children 
while ($parent.FirstChild -ne $null) { 
    $parent.RemoveChild($parent.FirstChild) 
} 

そして、あなたはそれに子を追加することができます

# Add new child nodes 
$parent.AppendChild(...) 
$parent.AppendChild(...) 

編集$parent.RemoveAll()も(非常に混乱し、私は認めなければならない)親の属性を削除しますので、私はそれを置き換えますすべての子を削除するループ。

+0

クイックアンサーに感謝します。 これは私がちょうどそれを理解した私の問題を解決します。 私はより効率的なものを探しています。 –

+0

@srikanthpeethaあなたはそれがすべてのXMLを解析すべきではない、あるいは「より効率的」とはどういう意味ですか?そのような場合は、正規表現などを使用することをお勧めします。私は部分的な解析をサポートするXMLパーサはないと思います。 – Raziel

+0

はいxmlパーサーも見つかりませんでした。 ところで$ parent = $ xmlDocument.ChildNodes [0] Childnodesがインデックス作成をサポートしていないというエラーが表示される –

関連する問題