【问题标题】:How to find a node in any XML in powershell?如何在 powershell 中的任何 XML 中查找节点?
【发布时间】:2023-03-18 19:47:01
【问题描述】:

我有简单的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>
</bds>

我想知道即使前面节点的结构发生变化,如何获取&lt;name&gt;的值

即在不知道之前节点名称的情况下,如何漫游XML获取name标签的值?

【问题讨论】:

  • 刚接触 SO 你可能不知道这一点,但习惯于点击左侧的 ✓ 图标 accept the answer that solved your problem。这将有助于其他有类似问题的人更轻松地找到它,并有助于激发人们回答您的问题。

标签: powershell scripting powershell-2.0 powershell-3.0 powershell-4.0


【解决方案1】:

您可以为此使用 XPath:

[xml]$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>
</bds>
"@

$xml.SelectNodes('//name').'#text'

输出

pc24
pc25

【讨论】:

    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多