我有一个给定的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我自然会得到第三个属性的注释,所以属性和注释之间没有任何关联任何想法?
谢谢
答案 0 :(得分:1)
如果要选择attribute
元素后面的注释,那么这应该有效:
/*/comment()[following-sibling::*[position()=1 and name()='attribute']]
答案 1 :(得分:0)
使用强>:
//comment()[following-sibling::*[1][self::attribute]]
这比当前选择的答案更紧凑,更精确。 //
缩写是必要的,因为没有提供格式良好的XML文档,并且注释节点的嵌套级别未知。