これは私の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>
MY XSLT Snipptは:
<?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>
保存されている順序を失うことなく要素を取得するようにガイドしてください...