任何人都可以請幫助我進行以下轉換嗎?XSLT壓扁XML
下面是輸入XML:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<title>My book</title>
<pages>200</pages>
<size>big</size>
<author>
<name>Smith</name>
</author>
<author>
<name>Wallace</name>
</author>
<author>
<name>Brown</name>
</author>
</book>
<book>
<title>Other book</title>
<pages>100</pages>
<size>small</size>
<author>King</author>
</book>
<book>
<title>Pretty book</title>
<pages>150</pages>
<size>medium</size>
</book>
這是所需的輸出
<book style="even">
<title>My book</title>
<pages>200</pages>
<size>big</size>
<author-name>Smith</author-name>
</book>
<book style="odd">
<title>My book</title>
<pages>200</pages>
<size>big</size>
<author-name>Wallace</author-name>
</book>
<book style="even">
<title>My book</title>
<pages>200</pages>
<size>big</size>
<author-name>Brown</author-name>
</book>
<book style="odd" >
<title>Other book</title>
<pages>100</pages>
<size>small</size>
<author-name>King</author-name>
</book>
<book style="even">
<title>Pretty book</title>
<pages>150</pages>
<size>medium</size>
<author-name />
</book>
我使用xsl:for-each
循環試過,但我想他們把我帶到了一個死衚衕。這裏棘手的部分是無論在任何書籍中放置多少個作者標籤,「樣式」屬性都需要成爲「全局」。
嗯,不能得到這個工作。我得到以下錯誤:「與此樣式表中另一個模板的模板衝突」。即使我進行改造,我也只能得到最後一本書... –
對不起,有一個多餘的模板/我忘了刪除,它現在被糾正。但奇怪的是,我用XSLT引擎成功嘗試了它,並沒有抱怨這一點。另外,我在輸入文檔中添加了一個根元素,這也可能是導致不同行爲的原因。 –
我不知道爲什麼,但這隻適用於Xalan處理器,不適用於包含在JRE中的標準處理器。 –