XMLファイルの子ノードを削除しています

DobotJr

私がこのXMLを持っているとしましょう:

    <?xml version="1.0" encoding="utf-16"?>
    <GPO xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.microsoft.com/GroupPolicy/Settings">
      <Identifier>
        <Identifier xmlns="http://www.microsoft.com/GroupPolicy/Types">{0afca021-554a-49cf-adab-2b6241895145}</Identifier>
      </Identifier>
      <Name>DefaultName</Name>
      <IncludeComments>true</IncludeComments>
      <CreatedTime>2012-08-08T18:20:05</CreatedTime>
      <ModifiedTime>2018-09-05T20:23:59</ModifiedTime>
      <ReadTime>2018-09-19T11:02:17.4750654Z</ReadTime>
     </GPO>

PowerShellを使用して、CreatedTimeノードとModifiedTimeノードを削除するにはどうすればよいですか?

私を失望させているのは、GPO要素の名前空間の問題です。

これが私がこれまでに持っているものです:

[xml]$xml = Get-Content "C:\temp\x.xml"
$parent_xpath = '//GPO'
$nodes = $xml.SelectNodes($parent_xpath)
$nodes
$nodes | % {
        $child_node = $_.SelectSingleNode('CreatedTime')
        $_.RemoveChild($child_node) | Out-Null
}
 $xml.Save("C:\temp\x-2.xml")
exit
ArcSet

親を呼び出し、各子ノードをループしてから、親ノードから削除できます。「Node.ChildNode.ChildNode」を使用して親を定義できます

あなたのためのクイック関数を書きました

function Remove-ChildNodes([xml]$FullXML, [string]$ParentNode, [string[]]$NodeNames){
    return ($xml.$ParentNode.ChildNodes | ?{ $NodeNames -contains $_.Name }) | %{[void]$_.ParentNode.RemoveChild($_)}
}

そしてここに作業コピーがあります

[xml]$xml=@"
<?xml version="1.0" encoding="utf-16"?>
    <GPO xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.microsoft.com/GroupPolicy/Settings">
      <Identifier>
        <Identifier xmlns="http://www.microsoft.com/GroupPolicy/Types">{0afca021-554a-49cf-adab-2b6241895145}</Identifier>
      </Identifier>
      <Name>DefaultName</Name>
      <IncludeComments>true</IncludeComments>
      <CreatedTime>2012-08-08T18:20:05</CreatedTime>
      <ModifiedTime>2018-09-05T20:23:59</ModifiedTime>
      <ReadTime>2018-09-19T11:02:17.4750654Z</ReadTime>
     </GPO>
"@

function Remove-ChildNodes([xml]$FullXML, [string]$ParentNode, [string[]]$NodeNames){
    return ($xml.$ParentNode.ChildNodes | ?{ $NodeNames -contains $_.Name }) | %{[void]$_.ParentNode.RemoveChild($_)}
}

Remove-ChildNodes -FullXML $xml -ParentNode "GPO" -NodeNames "CreatedTime","ModifiedTime"
$xml.InnerXml

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

phpでxmlファイルのノードを削除します

分類Dev

XMLファイルのノードを削除します

分類Dev

PowerShellを使用してxmlファイルの親ノードの直接の子ノードを取得します

分類Dev

xmlファイル内の特定の値を持つ子ノードを削除します

分類Dev

SQLServerのXMLファイルからノードを削除します

分類Dev

XMLファイルC ++で子ノードを削除する

分類Dev

ファイルの上にphpsimplexmlを使用して新しい子ノードを追加します

分類Dev

Powershellを使用して既存のxmlファイルに既存の子ノードを保持することにより、親ノードを追加します-

分類Dev

xmlノードと子を新しいxmlファイルにコピーします

分類Dev

新しいノードを使用して2つのxmlファイルを結合します

分類Dev

Javascriptを使用して、XMLファイルのノード内のノードを取得します

分類Dev

XMLファイルのノードを解析します

分類Dev

XMLファイルのノードをマップします

分類Dev

c#を使用してxmlファイル内のすべてのノードをループします

分類Dev

XMLファイルから重複ノードを削除します(XSLT変換)

分類Dev

XQueryを使用してXMLファイルの子ノードの数を取得する方法

分類Dev

xmlファイルの行を削除しています

分類Dev

PowerShellを使用して、あるファイルから別のファイルに新しいXMLノードを追加または追加します

分類Dev

Linuxでiノード番号を使用してファイルを削除します

分類Dev

Python:XMLファイルから子を見つけて削除し、新しいファイルに出力します

分類Dev

XMLの条件に基づいて、親ノードから子ノードを削除します

分類Dev

JavaのXMLファイルからノードとその要素を削除します

分類Dev

Javaを使用してXMLファイルからノードのすべての情報を取得します

分類Dev

Rを使用してXMLファイルを読み取り、いくつかのノードを選択して、別のXMLに書き戻します。

分類Dev

OpenCVライブラリを使用してxmlファイルの子ノードにアクセスするにはどうすればよいですか?

分類Dev

XML子ノードを削除します

分類Dev

ノードで、1時間以上経過したすべてのファイルを削除しますか?

分類Dev

RのXpathを介してxmlファイルのノードから値を取得します

分類Dev

PowerShellを使用してxmlファイルからすべての子ノードを残して親ノードのみをインポートするにはどうすればよいですか?

Related 関連記事

  1. 1

    phpでxmlファイルのノードを削除します

  2. 2

    XMLファイルのノードを削除します

  3. 3

    PowerShellを使用してxmlファイルの親ノードの直接の子ノードを取得します

  4. 4

    xmlファイル内の特定の値を持つ子ノードを削除します

  5. 5

    SQLServerのXMLファイルからノードを削除します

  6. 6

    XMLファイルC ++で子ノードを削除する

  7. 7

    ファイルの上にphpsimplexmlを使用して新しい子ノードを追加します

  8. 8

    Powershellを使用して既存のxmlファイルに既存の子ノードを保持することにより、親ノードを追加します-

  9. 9

    xmlノードと子を新しいxmlファイルにコピーします

  10. 10

    新しいノードを使用して2つのxmlファイルを結合します

  11. 11

    Javascriptを使用して、XMLファイルのノード内のノードを取得します

  12. 12

    XMLファイルのノードを解析します

  13. 13

    XMLファイルのノードをマップします

  14. 14

    c#を使用してxmlファイル内のすべてのノードをループします

  15. 15

    XMLファイルから重複ノードを削除します(XSLT変換)

  16. 16

    XQueryを使用してXMLファイルの子ノードの数を取得する方法

  17. 17

    xmlファイルの行を削除しています

  18. 18

    PowerShellを使用して、あるファイルから別のファイルに新しいXMLノードを追加または追加します

  19. 19

    Linuxでiノード番号を使用してファイルを削除します

  20. 20

    Python:XMLファイルから子を見つけて削除し、新しいファイルに出力します

  21. 21

    XMLの条件に基づいて、親ノードから子ノードを削除します

  22. 22

    JavaのXMLファイルからノードとその要素を削除します

  23. 23

    Javaを使用してXMLファイルからノードのすべての情報を取得します

  24. 24

    Rを使用してXMLファイルを読み取り、いくつかのノードを選択して、別のXMLに書き戻します。

  25. 25

    OpenCVライブラリを使用してxmlファイルの子ノードにアクセスするにはどうすればよいですか?

  26. 26

    XML子ノードを削除します

  27. 27

    ノードで、1時間以上経過したすべてのファイルを削除しますか?

  28. 28

    RのXpathを介してxmlファイルのノードから値を取得します

  29. 29

    PowerShellを使用してxmlファイルからすべての子ノードを残して親ノードのみをインポートするにはどうすればよいですか?

ホットタグ

アーカイブ