我有以下XML:
<li>angels</li>
<dt>Famous or respected graffiti artists who have died.</dt>
<li>PP</li>
<dt>Point to Point</dt>
<li>goodbye</li>
<li>Hello</li>
<dt>Alloo, say to people</dt>
我想找到每个单词的定义(如果存在)?
output:
[ (&#39;天使&#39;,&#39;已经去世的着名或受尊敬的涂鸦艺术家。&#39;), (&#39; PP&#39;,&#39;点对点&#39;), (&#39;再见&#39;,null), (&#39;你好&#39;,&#39; Alloo,对人们说'#39;) ]
或
[ (&#39;天使&#39;,&#39;已经去世的着名或受尊敬的涂鸦艺术家。&#39;), (&#39; PP&#39;,&#39;点对点&#39;), (&#39;你好&#39;,&#39; Alloo,对人们说'#39;) ]
但问题是有时定义不存在,我想识别那些案例
我怎样才能使用XPath?
答案 0 :(得分:2)
您可以查看第一个后续兄弟是否不是dt
...
//li[following-sibling::*[1][not(self::dt)]]
答案 1 :(得分:0)
在XSLT 2.0中,
<xsl:for-each-group select="*" group-starting-with="li">
...
</xsl:for-each-group>