我有一个xml如下,
<doc>
<chap><The root>
<element that>
<declares>
<the document to be an XSL style sheet></chap>
</doc>
我需要编写xsl,将名为<p>
的单独节点添加到<
中>
和<chap>
之间存在的文本。
所以输出应该是,
<doc>
<p><The root></p>
<p><element that></p>
<p><declares></p>
<p><the document to be an XSL style sheet></p>
</doc>
我可以在<chap>
节点内的文本中编写模板,例如,<xsl:template match="chap/text()"
,但我想不出通过分析{{<p>
中的text()节点来添加新<chap>
的方法。 1}}
有任何建议我该怎么做?
答案 0 :(得分:1)
要执行此操作,您可以使用analyze-string
元素来获取与正则表达式匹配的文本
<xsl:analyze-string select="." regex="<(.*)>">
要输出括号匹配的文本,请使用regex-group
<xsl:value-of select="regex-group(1)" />
试试这个XSLT模板
<xsl:template match="chap">
<xsl:analyze-string select="." regex="<(.*)>">
<xsl:matching-substring>
<p><xsl:value-of select="regex-group(1)" /></p>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="." />
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
上阅读正则表达式匹配
答案 1 :(得分:1)
检查
swift -version