通过 XPath 提取属性节点的值

问题描述

//Parent[@id='1']/Children/child/@name

您原来的意思是具有属性child[@name]的元素。你想要。child``name``child/@name

解决方法

如何通过 XPath 提取属性节点的值?

一个示例 XML 文件是:

<parents name='Parents'>
  <Parent id='1' name='Parent_1'>
    <Children name='Children'>
      <child name='Child_2' id='2'>child2_Parent_1</child>
      <child name='Child_4' id='4'>child4_Parent_1</child>
      <child name='Child_1' id='3'>child1_Parent_1</child>
      <child name='Child_3' id='1'>child3_Parent_1</child>
    </Children>
  </Parent>
  <Parent id='2' name='Parent_2'>
    <Children name='Children'>
      <child name='Child_1' id='8'>child1_parent2</child>
      <child name='Child_2' id='7'>child2_parent2</child>
      <child name='Child_4' id='6'>child4_parent2</child>
      <child name='Child_3' id='5'>child3_parent2</child>
    </Children>
  </Parent>
</parents>

到目前为止,我有这个 XPath 字符串:

//Parent[@id='1']/Children/child[@name]

它只返回child元素,但我想拥有name属性的值。

对于我的示例 XML 文件,我希望输出如下:

Child_2
Child_4
Child_1
Child_3