输出子元素前后节点的内容

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>