gpt4 book ai didi

xml - PowerShell 在顶部插入 xml 节点

转载 作者:行者123 更新时间:2023-12-04 07:40:13 26 4
gpt4 key购买 nike

我想在其他现有子节点的顶部插入一个 xml 节点。
我的代码的问题是它附加到底部。
我试过 InsertBefore()但我不断收到错误
前任:

<Providers>
<----I want to insert a provider here
<provider>
<id>87585857587</id>
<type>AD</type>
<name>Demo1</name>
<event>saga</event>
<username></username>
<item>NEV</item>
<password></password>
</provider>
</Providers>
我的代码:
    $varGorup = @{"type"="AD";"name"="DEMO";"event"="DNS";"username"="user1";"item"="store";"password"="password1";}

$file = [XML](Get-Content $xmlFile)

$providerNode = $file.providers.AppendChild($file.CreateElement("provider"))

$varGorup | % getEnumerator | % {

$childNode = $providerNode.AppendChild($file.CreateElement($_.key))
$childNode.AppendChild($file.CreateTextNode($_.value)) | Out-Null
}

$file.save($xmlFile)
我试过:
   $file =  [XML](Get-Content $xmlFile) 

$providers = $file.SelectSingleNode('/providers')

$provider = $file.CreateElement("provider")

$file.InsertBefore($provider,$providers)
但得到这个错误
Exception calling "InsertBefore" with "2" argument(s): "This document already has a 'DocumentElement' node."

最佳答案

使用语法 InsertBefore:

$xmlfile ="C:\test.xml"
$xml = [XML](Get-Content $xmlFile)

$varGorup = @{"type"="AD";"name"="DEMO";"event"="DNS";"username"="user1";"item"="store";"password"="password1";}

#calcul the number of node, if total is 0 do an AppendChild, else do that
$total = $xml.Providers.ChildNodes.Count

if($total -eq 0){
$providerNode = $file.providers.AppendChild($xml.CreateElement("provider"))
} else{
$providerNode = $xml.providers.InsertBefore($xml.CreateElement("provider"), $xml.Providers.ChildNodes[0])
}

$varGorup | % getEnumerator | % {

$childNode = $providerNode.AppendChild($xml.CreateElement($_.key))
$childNode.AppendChild($xml.CreateTextNode($_.value)) | Out-Null
}
$xml.save($xmlFile)

关于xml - PowerShell 在顶部插入 xml 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67521114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com