很抱歉这个问题很愚蠢,但 xsl 1.0 中的字符串处理不是我的强项之一。我正在寻找一种提取伪 html 标签之间保存的字符串的方法。例如。
<xsl:variable name="test">
This is a string <link>http://www.stackoverflow.com</link> and some more stuff here
</xsl:variable>
这个想法是最终得到另外 2 个包含的变量。
var1 = http://www.stackoverflow.com和var2 = 这是一个字符串,这里还有一些东西
就像我说的,对不起,这是一个模糊的问题。谢谢。
以下是执行此操作的方法:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="test">
This is a string <link>http://www.stackoverflow.com</link> and some more stuff here
</xsl:variable>
<xsl:variable name="vTestNodeset" select="document('')/*/xsl:variable[@name='test']"/>
<xsl:variable name="var1" select="string($vTestNodeset/link)"/>
<xsl:variable name="var2">
<xsl:copy-of select="$vTestNodeset/text()"/>
</xsl:variable>
<xsl:template match="/">
"<xsl:value-of select="$var1"/>"
============
"<xsl:value-of select="$var2"/>"
============
"<xsl:value-of select="normalize-space($var2)"/>"
</xsl:template>
</xsl:stylesheet>
当此转换应用于任何 XML 文档(未使用)时,将生成所需的结果:
"http://www.stackoverflow.com"
============
"
This is a string and some more stuff here
"
============
"This is a string and some more stuff here"