我想在xsl中使用OR语句匹配两个表达式:apply-templates select.i想要检查以下条件......
<xsl:apply-templates select="//w:body/w:p[w:r[w:t]] or //w:body/w:p[w:r[w:pict]]">
// My Functionality
</xsl:apply-templates>
但我不知道我是怎么做到的。请指导我摆脱这个问题...
答案 0 :(得分:1)
我不了解XSLT 2.0,但在XSLT 1.0中<xsl:apply-templates select="//w:body/w:p[w:r[w:t]] or //w:body/w:p[w:r[w:pict]]">
无效查询。使用|
代替or
。
答案 1 :(得分:1)
您可以使用or
,在此上下文中使用它是非常正确的,因为您不需要测试节点:
<xsl:apply-templates select="
//w:body
/w:p
[w:r/w:t or w:r/w:pict]">
|
( union )仅适用于,如果您需要选择测试节点(w:t
和w:pict
):
<xsl:apply-templates select="
//w:body/w:p/w:r/w:t
|
//w:body/w:p/w:r/w:pict">
XPath 2.0允许您更简洁地编写:
<xsl:apply-templates select="
//w:body/w:p/w:r/(w:t|w:pict)"/>