当嵌入另一个元素时提取节点的值

时间:2012-08-06 01:25:24

标签: xml xslt

我正在尝试从另一个系统处理XML文档,而我所获得的XML是伪HTML,我需要转换为HTML。

示例XML:

<DOC>
<Paragraph>This text is <bold>bold</bold> and this text is not.</Paragraph>
</DOC>

必填项:

<BODY>
<P>This text is <b>bold</b> and this is not.</P>
</BODY>

使用node()值我能够在tag(此文本)之前获取node的值,但是我无法编写模板hat将在标记,process标记之前处理节点的一部分,然后返回剩下的价值。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

<xsl:template match="@*|node()">
  <xsl:copy>
     <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="DOC">
    <BODY><xsl:apply-templates/></BODY>
</xsl:template>

<xsl:template match="Paragraph">
    <P><xsl:apply-templates/></P>
</xsl:template>

<xsl:template match="bold">
    <b><xsl:apply-templates/></b>
</xsl:template>

答案 1 :(得分:0)

你尝试了什么?不应该比

复杂得多
<xsl:template match="DOC">
    <BODY><xsl:apply-templates/></BODY>
</xsl:template>

<xsl:template match="Paragraph">
    <P><xsl:apply-templates/></P>
</xsl:template>

<xsl:template match="bold">
    <b><xsl:apply-templates/></b>
</xsl:template>