如何在Powershell中以任何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>

我想知道如何获得<name>的值,即使先前节点的结构发生了变化

也就是说,如何在不知道先前节点名称的情况下漫游XML以获取名称标签的值?

解决方法

您可以为此使用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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...