我正在使用xslt轉換來轉換某些xml文件。爲了格式化輸出,我使用的是xsl樣式表中的兩個標籤。更改xml屬性的排序
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
但問題是,在Windows中我得到一個類型的輸出,而當我在UNIX機器上運行的程序,我得到一個不同類型的輸出。 如:
<Book name="Godfather" author="MarioPuzo"
/>
但是在UNIX中,我所得到的是,
<Book author="MarioPuzo" name="Godfather" />
這是一種奇怪的問題。任何幫助表示讚賞。
雖然我不知道爲什麼這是,我很好奇,爲什麼這會導致你的問題。你的程序是否期望特定的屬性順序? – Utkanos 2012-07-11 10:20:10
我認爲這將有助於我們看到XML輸入文件和XSLT文件,謝謝! – 2012-07-11 10:33:23
在XML中,元素的屬性集中沒有定義標準排序 - 這可能因實現而異。另外,如果兩個XML文檔之間的唯一區別是屬性順序,則它們被認爲是「相等的」 - 例如XPath 2.0函數deep-equal($ doc1,$ doc2)'生成true()'。即使發現某些特性按照特定的順序出現在XML解析器和XSLT處理器的特定實現中),但這種破解並不能保證與本實現的下一個版本一起工作。 – 2012-07-11 12:15:57