Powershell 如何从带有节点的函数返回XML文件?

Powershell 如何从带有节点的函数返回XML文件?,powershell,powershell-2.0,powershell-3.0,powershell-4.0,Powershell,Powershell 2.0,Powershell 3.0,Powershell 4.0,我有一个简单的XML <bds> <bd> <id>10</id> <user>john</user> <servers> <name>pc24</name> </servers> </bd> <bd> <id>12</id> <user>peter&l

我有一个简单的XML

<bds>
<bd>
    <id>10</id>
    <user>john</user>
    <servers>
        <name>pc24</name> 
    </servers>
</bd>
<bd>
    <id>12</id>
    <user>peter</user>
    <servers>
        <name>pc25</name> 
    </servers>
</bd>
我希望函数的输出为:

        <id>12</id>
        <user>peter</user>
        <servers>
            <name>pc25</name> 
        </servers>
12
彼得
pc25

如何在函数返回时生成XML文件?

您可以使用稍微智能一点的XPath来选择节点,然后使用
InnerXml
属性来获取所需的输出字符串:

PS>$xml=[xml]@”
10
厕所
pc24
12
彼得
pc25
"@
PS>$xml.SelectNodes(“bds/bd[servers/name='pc25']”)。InnerXml
12peterpc25
注-
bds/bd[servers/name='pc25']
表示“查找所有
bds/bd
节点,这些节点都有一个子
servers/name
节点,其值为
pc25


然后,您可以使用XPath字符串中的变量值(视情况而定)将其重新装配到函数中…

输出不是XML。没有顶部节点。输入也不是XML,缺少标记。您的PowerShell版本是什么?为什么要用你能找到的所有
PowerShell
标记来标记这个?
        <id>12</id>
        <user>peter</user>
        <servers>
            <name>pc25</name> 
        </servers>