使用 xsl(英语) 从字符串中提取字符串



很抱歉这个问题很愚蠢,但 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"

相关内容

  • 没有找到相关文章