как использовать оператор or в xsl: apply-templates select attribute?
Я хочу сопоставить два выражения с помощью оператора OR в xsl: apply-templates select.я хочу проверить следующие условия...
<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>
Но я не знаю, как мне это удается. Пожалуйста, направьте меня, чтобы выйти из этой проблемы...
2 ответов:
Я не знаю о 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.
Вы можете использовать
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)"/>
Comments