我有以下xml文件:
<parent> Hello
<child>10</child>
<child>20</child>
<child>30</child
Italic
<child>400</child>
<child>500</child>
Bold
</parent>
现在解决方案:
<xsl:template match="parent">
<fo:block>
<xsl:value-of select="text()"/>
<xsl:apply-templates select="child"/>
</fo:block>
</xsl:template>
<xsl:template match="child">
<fo:inline>
<fo:inline color="Red"><xsl:value-of select="child"/></fo:inline>
</fo:inline>
</xsl:template>
如何输出整个父元素的内容并匹配任何其他格式的子元素。我只在第一个子元素(Hello)之前获得内容。
预期产量: 你好10 20 30 Italic 400 500 Bold(红色数字)
输出到现在为止: 你好
我使用xslt 2.0。谢谢你的帮助
答案 0 :(得分:0)
只要您使用apply-templates
处理子节点,其余部分就会到位,所以更改
<xsl:template match="parent">
<fo:block>
<xsl:value-of select="text()"/>
<xsl:apply-templates select="child"/>
</fo:block>
</xsl:template>
<xsl:template match="child">
<fo:inline>
<fo:inline color="Red"><xsl:value-of select="child"/></fo:inline>
</fo:inline>
</xsl:template>
到
<xsl:template match="parent">
<fo:block>
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="child">
<fo:inline>
<fo:inline color="Red">
<xsl:apply-templates/>
</fo:inline>
</fo:inline>
</xsl:template>