这是我的 Xml 文件。我想使用 xslt 将此 xml 文件转换为另一个自定义的 xml 文件。
XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Text1-</w:t>
</w:r>
<w:smartTag>
<w:smartTag>
<w:smartTag>
<w:smartTag>
<w:r>
<w:t>Text2-</w:t>
</w:r>
</w:smartTag>
</w:smartTag>
<w:r>
<w:t>Text3-</w:t>
</w:r>
<w:smartTag>
<w:r>
<w:t>Text4-</w:t>
</w:r>
</w:smartTag>
<w:r>
<w:t>Text5-</w:t>
</w:r>
</w:smartTag>
</w:smartTag>
<w:r>
<w:t>Text6-</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
而我的 XSLT 片段是:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<xsl:output method="html" indent="yes"/>
<xsl:template match="*">
<Document>
<xsl:choose>
<xsl:apply-templates select="//w:p[w:r[w:t]]">
</xsl:apply-templates>
</xsl:choose>
</Document>
</xsl:template>
<xsl:template match="w:p">
<Paragraph>
<xsl:if test="(.//w:smartTag/w:r/w:t)">
<xsl:apply-templates select="//w:smartTag//w:r//w:t"/>
</xsl:if>
<xsl:apply-templates select="./w:r/w:t"/>
</Paragraph>
</xsl:template>
<xsl:template match="w:t">
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
我当前的输出是:
<Document>
<Paragraph>
Text2-Text3-Text4-Text5-Text1-Text6-
</Paragraph>
</Document>
我需要的输出是:
<Document>
<Paragraph>
Text1-Text2-Text3-Text4-Text5-Text6-
</Paragraph>
</Document>
请指导我在不丢失其保留顺序的情况下获取元素...