0
我想通過使用xslt將一個xml格式轉換爲另一種指定的格式。這是我的Xml文件。我必須通過在xslt中使用某種類型的遞歸調用來創建一些動態xml元素。如何使用xslt中的遞歸函數調用創建動態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:pPr>
</w:pPr>
<w:r>
<w:t>Text1-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1" />
</w:pPr>
<w:r>
<w:t>Text2-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
</w:pPr>
<w:r>
<w:t>Text3-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
</w:pPr>
<w:r>
<w:t>Text4-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading2" />
</w:pPr>
<w:r>
<w:t>Text5-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
</w:pPr>
<w:r>
<w:t>Text6-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading3" />
</w:pPr>
<w:r>
<w:t>Text7-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
</w:pPr>
<w:r>
<w:t>Text8-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1" />
</w:pPr>
<w:r>
<w:t>Text9-</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
</w:pPr>
<w:r>
<w:t>Text10-</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
而我需要的輸出XML是:
<Document>
<Paragraph>Text1-</Paragraph>
<Heading1>
<Title>Text2-</Title>
<Paragraph>Text3-</Paragraph>
<Paragraph>Text4-</Paragraph>
<Heading2>
<Title>Text5-</Title>
<Paragraph>Text6-</Paragraph>
<Heading3>
<Title>Text7-</Title>
<Paragraph>Text8-</Paragraph>
</Heading3>
</Heading2>
<Heading1>
<Heading1>
<Title>Text9-</Title>
<Paragraph>Text10-</Paragraph>
<Heading1>
</Document>
請指導我的方式來擺脫這個問題...
我已經把你的XSLT文件在我的VS-2010項目folder.When我打開在VS-2010,然後它說:「\t‘XPath的默認命名空間’尚未實現」並且'xsl:function'還沒有實現。我使用VS-2010運行這個xslt文件,或者我需要包含任何東西 – Saravanan
您將您的文章標記爲XSLT 2.0,所以我編寫了一個XSLT 2.0樣式表。要運行XSLT 2.0,您需要一個XSLT 2.0處理器,如Saxon 9或XmlPrime或AltovaXML。 –
@Matrin Honnen:非常抱歉...我想在VS2010中運行此文件。如何將此代碼轉換爲按我的要求運行 – Saravanan