将子元素中的PCDATA插入属性中

时间:2011-08-18 10:26:51

标签: xslt xslt-2.0

我想将子元素中的PCDATA插入到选定的节点属性

XML

<root>
  <tag>
     <tag1>SOME TEXT</tag1>
  </tag>
</root>

MY XSL

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xi="http://www.w3.org/2001/XInclude" version="1.0">

    <xsl:template match="root">
        <tag-out>
            <xsl:attribute name="text">
                <!-- What should I select? -->
                <xsl:value-of select="tag/tag1/???"/>
            </xsl:attribute>
        <tag-out>
    </xsl:template>

    ...........

</xsl:stylesheet>

所需的输出XML

<root-out text="SOME TEXT">
   <tag-out/>
</root-out>

由于

1 个答案:

答案 0 :(得分:2)

简单地做

有什么问题
   <tag-out text="{tag/tag1}"></tag-out>

?当然你的样本是

    <tag-out>
        <xsl:attribute name="text">

            <xsl:value-of select="tag/tag1"/>
        </xsl:attribute>
    <tag-out>

也是可能的。但是,由于您的帖子被标记为XSLT 2.0,我至少会这样做

    <tag-out>
        <xsl:attribute name="text" select="tag/tag1"/>
    <tag-out>

如果你真的需要xsl:attribute