我正在尝试创建一个选择语句,它检测处理指令
<xsl:choose>
<xsl:when test="chapter/descriptive/heading='processing-instruction("xm-replace_text")'">
<xsl:template match="chapter/descriptive/heading"/>
</xsl:when>
<xsl:otherwise>
<xsl:template match="chapter/descriptive/heading">
<fo:block
font-size="16pt"
font-weight="bold"
font-color="red"
space-before="5mm"
space-after="2mm">
<xsl:number
count="chapter | task | diagnosis | taskintervals | tools | lubrication | glossary"
format="1.1"
level="multiple"/>
 
<xsl:value-of select="."/>
</fo:block>
</xsl:template>
</xsl:otherwise>
</xsl:choose>
是否无法测试这样的处理指令?
编辑:xml输入(需要完整的xml吗?)
...
<chapter infoclass-1="description" prodclass-1="setup">
<descriptive prodclass-1="setup" infoclass-1="intro">
<heading><?xm-replace_text Themenangabe in Form einer Überschrift ?></heading>
...
答案 0 :(得分:3)
不,对字面上的处理指令进行节点测试,例如。
<xsl:template match="processing-instruction('xm-replace_text')">...</xsl:template>
会匹配pi <?xm-replace_text ...?>
。
使用您的示例XML假设您尝试匹配包含该特定处理指令的heading
元素,然后使用
<xsl:template match="chapter/descriptive/heading[processing-instruction('xm-replace_text')]">...</xsl:template>
或
<xsl:template match="chapter/descriptive/heading/processing-instruction('xm-replace_text')">...</xsl:template>
如果你想匹配处理指令本身。