我正在使用XSLT 1.0。目前我在<w:t>
模板中。我想检查上一个兄弟w:r(id=3)
是否有<w:fldChar w:fldCharType="end"/>
。
我只想要前一个兄弟姐妹而不是w:r
id=2
或id=1
。
<t xmlns:w="http://example.com">
<w:r id="1">
<w:fldChar w:fldCharType="start"/>
</w:r>
<w:r id="2">
<w:fldChar w:fldCharType="separate"/>
</w:r>
<w:bookmarkStart w:id="0" w:name="tocStartRef_1"/>
<w:r id="3">
<w:fldChar w:fldCharType="end"/>
</w:r>
<w:bookmarkEnd w:id="0"/>
<w:r id="4">
<w:rPr>
<w:rStyle w:val="Span"/>
<w:rFonts w:ascii="arial" w:eastAsia="arial"
w:hAnsi="arial" w:cs="arial"/>
<w:b/>
<w:sz w:val="32"/>
</w:rPr>
<w:t>Fonts</w:t>
</w:r>
</t>
答案 0 :(得分:12)
像这样使用xpath preceding-sibling
轴:
preceding-sibling::w:r[1]/w:fldChar/@w:fldCharType = 'end'
将选择最近的([1]
)preceding-sibling
名为w:r
,然后下降到任何名为w:fldChar
的子元素,然后命名为{{}}的任何属性{1}},如果存在其文本为w:fldCharType
的任何此类节点,则返回true。