输出子元素前后节点的内容
Output content of a node before and after a child element
我有以下 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)之前的内容。
预期输出:
Hello 10 20 30 Italic 400 500 Bold(红色数字)
到目前为止的输出:
你好
我使用 xslt 2.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>
我有以下 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)之前的内容。
预期输出: Hello 10 20 30 Italic 400 500 Bold(红色数字)
到目前为止的输出: 你好
我使用 xslt 2.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>