3

特定の XML ドキュメント (構造は変更できません) があり、ノードの上に書かれているコメントを取得したいと考えています。ドキュメントは次のようになります。

<!--Some comment here-->    
    <attribute name="Title">Book A</attribute>
    <attribute name="Author">
       <value>Joe Doe</value>
       <value>John Miller</value>
    </attribute>
<!--Some comment here-->
    <attribute name="Code">1</attribute>

したがって、コメントはオプションですが、ある場合は、各属性の上にコメントを取得したいと考えています。を使用/*/comment()[n]するとコメント n が返されますが、n=2 の場合、当然 3 番目の属性のコメントが取得されるため、属性とコメントの間に関連はありません。何かアイデアはありますか? ありがとう

4

2 に答える 2

1

要素が続くコメントを選択したい場合attribute、これはうまくいくはずです:

/*/comment()[following-sibling::*[position()=1 and name()='attribute']]
于 2010-04-14T11:32:08.863 に答える
0

使用:

//comment()[following-sibling::*[1][self::attribute]]

これは、現在選択されている answer よりもコンパクトで正確です。適切な形式の//XML ドキュメントが提供されておらず、コメント ノードのネスト レベルがわからないため、省略形が必要です。

于 2010-04-14T13:11:30.627 に答える