我在同一文件夹中有很多XML文件,它们的构建方式完全相同:
<inventaire>
<date>23/09/2019 17:20:16</date>
<blades>
<blade attr1="Value1" attr2"Value2" [...]>
[...]
</blades>
</inventaire>
我的目标是保持<inventaire>
,<date>
和<blades>
结构,并将所有XML文件中的所有<blade>
节点添加到一个XML文件中。
我已经尝试列出文件夹中的所有XML文件,获取每个文件的内容,然后将节点<blade>
写入新的XML文件中。
但是目前写入输出文件中的数据是:
System.Xml.XmlElement
我的代码:
function Xml_Merge {
$path = "E:\inv\"
$mergedFile = $path+"inventory.xml"
if ((Test-Path $mergedFile) -eq $true) {
Remove-Item $mergedFile
}
New-Item $mergedFile
$fileList = Get-ChildItem -Path $path -Recurse -Filter *.xml -Exclude inventory.xml
foreach ($file in $fileList) {
[xml]$xml = (Get-Content $file)
foreach ($Node in $xml.inventaire.blades) {
if ($Node.'blade') {
Add-Content -Path $mergedFile -Value $Node.'blade'
}
}
}
}
实际结果是一个仅包含以下内容的XML文件:
System.Xml.XmlElement [...] System.Xml.XmlElement
预期结果:
<inventaire>
<date>23/09/2019 17:20:16</date>
<blades>
<blade attr1="Value1" attr2"Value2" [...]>
<blade attr1="Value1" attr2"Value2" [...]>
<blade attr1="Value1" attr2"Value2" [...]>
<blade attr1="Value1" attr2"Value2" [...]>
[...]
</blades>
</inventaire>