У меня много XML-файлов в одной папке, они построены строго одинаково:
<inventaire>
<date>23/09/2019 17:20:16</date>
<blades>
<blade attr1="Value1" attr2"Value2" [...]>
[...]
</blades>
</inventaire>
Моя цель - сохранить <inventaire>
, <date>
и <blades>
структурировать и добавить в него все <blade>
узлов из всех файлов XML в один файл 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>