我已经查看了现有主题,但一无所获。我有 2 个 XML 文件,除了某些行之外几乎相同。目的是从第一个 XML 中获取值,将其添加到第二个 XML 中,然后第二个将删除第一个 XML 文件。
这是第一个文件的结构
<configuration >
<protocol>
<NATIVE>
</NATIVE>
<ICAP>
</ICAP>
<RPC>
<ClientList>
<items>
<item value="X.X.X.X">
<item value="A.A.A.A">
</items>
</ClientList>
</configuration>
和第二个文件:
<configuration >
<protocol>
<NATIVE>
</NATIVE>
<ICAP>
</ICAP>
<RPC>
<ClientList>
<items>
<item value>
</items>
</ClientList>
</configuration>
目的是获取带有“Item Value = ...”的行并将其插入到第二个 XML 文件中。对于所有可能存在的线路
我尝试将值保存到 TXT 文件中,然后像这样从 TXT 导入它:
$xmlpath1 = "c:\temp\configuration.xml"
$xmlpath2 = "c:\configuration1.xml"
$xmlpath3 = "c:\temp\output.txt"
[xml]$xd= Get-Content $xmlpath1
[xml]$xd2= Get-Content $xmlpath2
$rpc=($xd.configuration.protocol.RPC.ClientList.items.item )
$rpc2=($xd2.configuration.protocol.RPC.ClientList.items.item )
foreach($value in $rpc2){
$value.value >> "c:\temp\output.txt"
}
$txt = get-content $xmlpath3
foreach($line in $txt){
$a=$xd.configuration.protocol.RPC.ClientList.items["item"]
$new=$xd.CreateElement("item")
[void]$a.AppendChild($new)
$a.setattribute("value","$line")
$xd.Save($xmlpath1)
}
但不是得到:
<ClientList>
<items>
<item value="X.X.X.X">
<item value="A.A.A.A"/>
<item value="B.B.B.B"/>
<item value="C.C.C.C"/>
</item>
</items>
</ClientList>
我有 :
<ClientList>
<items>
<item value="C.C.C.C"> <== Last entry read by PS...
<item />
<item />
<item />
</item>
</items>
</ClientList>
如果测试了很多不同的方法,但都没有成功。如果您有任何建议,那就太好了!