值为节点的XSLT参数名称



XML:

<root>
 <param name="a">valueOfA</param>
 <param name="b">valueOfB</param>
 <param name="c">valueOfC</param>    
</root>

我需要为xml中的每个param节点创建param

因此,预期结果:

<xsl:param name="a" select="valueOfA" />
<xsl:param name="b" select="valueOfB" />
<xsl:param name="c" select="valueOfC" />

~编辑:

犯了一个错误,我需要一个实际的xslt参数,以便稍后在代码中使用。固定在上面。

~编辑:

XSLT 1.0要求

~编辑:

主要问题是使xsl:param的名称从xml值变为如下无效:

<xsl:param name="{@name}" />

或变量。

<xsl:template match="root">
  <xsl:copy>
    <xsl:apply-templates select="param"/>
  </xsl:copy>
</xsl:template>
<xsl:template match="param">
  <param name="{ ./@name }" select="{ string(.) }"></param>
</xsl:template>

从您的编辑中,您似乎正在寻找一种使用一个XSLT创建另一个XSLT的方法。为了在xsl:命名空间中创建元素,您需要使用<xsl:element>或使用命名空间别名功能

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
     xmlns:xslo="urn:xsl-output" exclude-result-prefixes="xslo">
  <xsl:namespace-alias stylesheet-prefix="xslo" result-prefix="xsl" />
  <xsl:template match="root">
    <xslo:stylesheet version="1.0">
      <xsl:apply-templates select="param" />
    </xslo:stylesheet>
  </xsl:template>
  <xsl:template match="param">
    <xslo:param name="{@name}" select="{.}" />
  </xsl:template>
</xsl:stylesheet>

样式表中前缀为xslo:的元素在输出文档(它本身就是另一个样式表(中变为xsl:

相关内容

  • 没有找到相关文章

最新更新