を取得できません:は、私はこのようなXMLを持って正しいXSLT出力
<?xml version="1.0" encoding="UTF-8"?>
<Section>
<Chapter>
<nametable>
<namerow>
<namecell stuff="1">
<entity>A</entity>
</namecell>
<namecell stuff="2">
<entity>B</entity>
</namecell>
</namerow>
</nametable>
</Chapter>
</Section>
私のXSLTは、このようなものです:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="Section/Chapter//nametable"/>
</xsl:template>
<xsl:template match="nametable">
<xsl:for-each select="./namerow">
<xsl:value-of select="./namecell/@stuff"/>
<xsl:value-of select="./namecell" />
</xsl:for-each>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
奇数が、私はこの順序で出力を取得しています1 2 AB、私は1 A 2 Bを得るつもりだと思った。
なぜそれが分かっていますか?
TIA、
ジョン
oh!ここが答えです:) +1 –
Dimitri:これは 本当に何か? –
JohnX
@JohnX: ' は、各' stuff'属性の文字列値と 'namecellの' entity'子をテキストノードとして出力します'現在のノードの子ノードです。ここでは、Xpath * union *演算子 '|'を使用します。このような位置指定ステップでの結合は、XPath 2.0でのみ可能です(構文はXPath 1.0では違法です)。 –