我正在将xml转换为xsl-fo。。。在下面的XML中如何获取相同XML元素<cd>
的值。
XML
<?xml version="1.0" encoding="UTF-8"?>
<header>
<child-A>
<element>
<cd>100</cd>
<cd>message</cd>
<example>text</example>
</element>
</child-A>
<child-B>
<element>
<cd>10</cd>
<cd>test</cd>
<example>textB</example>
<cd>testvalue</cd>
</element>
<child-/B>
</header>
在这个Xml中,我想获得child-A/element/中所有<cd>
Xml元素的值(两个cd元素的值)。
XSLT 1.0
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" indent="yes" />
<xsl:template match="/header">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="child-A/element">
<fo:block>
<xsl:value-of select="cd">
</fo:block>
</xsl:template>
</xsl:stylesheet>
这里我得到的是元素的第一个值,但不是第二个。。
输出我得到
<fo:block>100<fo:block>
输出我想要
<fo:block>100
message</fo:block>
在带有XSLT2(或3)处理器的XSLT2或3中,您可以使用<xsl:value-of select="cd"/>
来获得所有cd
元素的字符串串联。使用XSLT1和XSLT1处理器将cd
元素推送到另一个模板,例如<xsl:apply-templates select="cd"/>
,或者使用内部有xsl:value-of select="."
的xsl:for-each select="cd"
来处理它们。