问题描述
//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