在分析字符串中应用模板
Apply-templates with in Analyze string
我有以下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
。当我尝试时,它会抛出一个错误。我想要像下面这样的。
如果(段)
xsl:apply-templates select child::node()[not(self::text)]
其他
xsl:apply-templates
谢谢
如果你想在 analyze-string
中使用 apply-templates
那么你需要将 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>
.
我有以下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
。当我尝试时,它会抛出一个错误。我想要像下面这样的。
如果(段)
xsl:apply-templates select child::node()[not(self::text)]
其他
xsl:apply-templates
谢谢
如果你想在 analyze-string
中使用 apply-templates
那么你需要将 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>
.