我有以下的XML。
<?xml version="1.0" encoding="UTF-8"?>
<para align="center">
<content-style font-style="bold">A.1 This is the first text</content-style> (This is second text)
</para>
以下是我的2个问题。
content-style
,但是当我运行它时,第二个被捕到应该是div class="para"
的位置,但是在输出中我获得<div class="para align-center">
}。请让我知道我哪里出错了。apply-templates
。当我尝试它时会抛出一个错误。我想要它如下。if(para)
xsl:apply-templates select child::node()[not(self::text)]
否则
xsl:apply-templates
由于
答案 0 :(得分:1)
如果要在apply-templates
内使用analyze-string
,则需要将analyze-string外的上下文节点存储在变量<xsl:variable name="context-node" select="."/>
中,然后可以使用<xsl:apply-templates select="$context-node/node()"/>
例如,处理子节点。
您是否需要这种方法我不确定,我想知道您是否不能简单地在模式中使用matches
函数,例如<xsl:template match="para[content-style[matches(., '(\w+)\.(\w+)')]]">...</xsl:template>
。