通过XSLT正则表达式匹配XML标记中的变量字符串

时间:2013-11-05 07:29:59

标签: xml xslt-2.0

我是XSLT世界的新手,我想知道如何匹配像<mml:mtable class="ccvccvcvc">这样的字符串实际上我希望每次匹配变量文本ccvccvcvc并将其复制以用于转换。 最终结果应该是:

  1. 输入字符串:<mml:mtable class="xxx">
  2. 输出字符串:<xsl:text>\begin{array}{xxx}</xsl:text><xsl:apply-templates/><xsl:text>\end{array}</xsl:text>

3 个答案:

答案 0 :(得分:1)

尝试

<xsl:template match="mml:mtable[@class]">
  <xsl:text>\begin{array}{</xsl:text>
  <xsl:value-of select="@class"/>
  <xsl:text>}</xsl:text>
  <xsl:apply-templates/>
  <xsl:text>\end{array}</xsl:text>
</xsl:template>

答案 1 :(得分:0)

这是一个属性,因此您可以在mml:table上下文中使用。

答案 2 :(得分:0)

您的输入“string”不是字符串,它是XML元素节点。而你的“输出字符串”不是一个字符串,它是XSLT程序文本的一个片段。所以我认为你对标题中正则表达式的引用表明你对XSLT处理模型感到困惑。请记住,XSLT正在处理节点树作为输入,以生成节点树作为输出。

我认为Martin可能已经猜对了你需要做什么,但是我怀疑你在理解XSLT之前可能存在一些差距,你需要先解决这个问题才能实现这个目标。