вставить PCDATA из дочернего элемента в атрибут - PullRequest
0 голосов
/ 18 августа 2011

Я хочу вставить PCDATA из дочернего элемента в атрибут выбранного узла

XML

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

МОЙ 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 Ответ

2 голосов
/ 18 августа 2011

Что не так просто делать

   <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.

...