Объединить несколько файлов XML в одном - PullRequest
0 голосов
/ 25 сентября 2019

У меня много 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...