私はPowerShellを初めて使い、XML XMLファイルからXML要素を削除しようとしています。私はうまく機能していないが、私は私のコードのためにそれを熟達しようとすると、それはもはや機能しAdding and Removing Xmlnode using PowershellPowershellはXMLタグを削除します
から例を得た次のコード例を使用しているこれを行うには
。コードは以下の通りである:
$Output = "C:\Users\Desktop\resulttest.xml"
# Load the existing document
$Doc = [xml](Get-Content -Path C:\Users\Desktop\test.xml)
# Specify tag names to delete and then find them
$DeleteNames= "body"
($Doc.Task.ChildNodes | Where-Object { $DeleteNames -contains $_.Name }) | ForEach-Object {
# Remove each node from its parent
[void]$_.ParentNode.RemoveChild($_)
}
# Save the modified document
$Doc.Save($Output)
私は次の例のXMLファイルを使用します。
<html>a
<body>b</body>
<Price>300</Price>
<Total> 5000 </Total>
<Part_C>
<Name>Jar</Name>
<Title>Mr</Title>
<CountryCode> 5000 </CountryCode>
</Part_C>
</html>
XMLファイルの目標は、「価格」と「合計」または「のような複数のタグを削除するということです
しかし、コードを実行すると、まだこれらのタグが含まれています。
私の質問は私が間違っていることです、そして、どうすればPowerShellがXMLタグを確実に削除することができますか?
新しいコードは機能しますが、別の問題があります。問題は、私がとまたはとのような2つの画像を削除しようとするとうまくいかないことです。 –
Jarno343
上記の私のコードを使って動作させるには、 '$ DeleteNames'を配列にしてそれに応じて呼び出す必要があります。それを今追加しました。 –
私はコードを変更しようとしましたが、次のエラーが表示されます: "[System.Xml.XmlElement]に 'SelectNode'という名前のメソッドが含まれていないため、メソッドの呼び出しに失敗しました C:\ Users \ EX27740 \ Desktop \ Eric次のコードを使用しています: ** $ Doc = [xml](Get-Content -Path C:\ Users \ EX27740 \ Desktop \ TestEric.xml ) #削除するタグ名を指定してください。 $ DeleteNames =、 "body"、 "Price"、 "Total" | Foreach-Object { $ Doc.ChildNodes.SelectNode($ _)} | Foreach-Object { $ Doc.ChildNodes.RemoveChild($ DeleteNames) } $ Doc.Save($ Output)** – Jarno343