合并多个XML文件

时间:2019-09-25 14:19:13

标签: xml powershell

我在同一文件夹中有很多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>

0 个答案:

没有答案