XPath経由で属性ノードの値を抽出する 質問する

XPath経由で属性ノードの値を抽出する 質問する

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

ベストアンサー1

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

オリジナルとは、属性を持つchild[@name]要素を意味します。必要なのは です。childnamechild/@name

おすすめ記事