我尝试选择其中没有斜体文字的段落(xslt 2.0):
<p>Some <hi rend="italic">italic text</hi></p>
<p>Some <hi rend="bold">bold text</hi> and some <hi rend="italic">italic Text</hi></p>
<p>Some <hi rend="bold">bold text</hi></p>
我只想要p [3]。我试过这个并且它有效:
<xsl:template match="p">
<xsl:if test="p[not(child::hi[@rend='italic'])]"> ... do something </if>
</xsl:template>
但我真正的问题是将这一级别更深入:我只希望那些至少一段没有斜体文字的文本:
<text>
<p>Some Text</p>
<p>Some <hi rend="bold">text</hi> and some <hi rend="italic">italic</hi> text</p>
</text>
<text>
<p>Some <hi rend="bold">text</hi></p>
<p>Some other text</p>
</text>
<text>
<p>Some <hi rend="italic">text</hi></p>
<p>Some <hi rend="italic">text</hi></p>
</text>
如何选择前两个文本而不是第三个文本?
答案 0 :(得分:1)
对于第一部分,您只需要
<xsl:template match="p[not(hi[@rend = 'italic'])]">...</xsl:template>
第二部分
<xsl:template match="text[p[not(hi[@rend = 'italic'])]]">...</xsl:template>