2017-04-06 56 views
1

我有一個函數可以用TinyXML-2庫(v4.0.1)加載xml文件。它總是工作正常,但今天我看到一個我不知道如何解決的問題。帶樣式表的TinyXML-2錯誤加載文件

當我去加載文件:

if (doc.LoadFile ("file.xml") != tinyxml2::XML_SUCCESS) 

它不會再回來XML_SUCCESS。我正在看很多文件,我發現只有在文件有這一行時纔會失敗:

<?xml-stylesheet ... 

沒有這條線,它工作正常。爲什麼會發生?我能做些什麼來解決這個問題?

感謝。

+0

如果它從不返回XML_SUCCESS,它返回什麼? – JimmyNJ

+0

它返回'XML_ERROR_PARSING_DECLARATION' – Safej

回答

0

TinyXML2不支持XML樣式表或文檔類型定義(DTD) 從文檔:

TinyXML2不分析或使用DTD(文檔類型定義)或 的XSL(可擴展樣式表語言)。

這就是爲什麼用<?xml-stylesheet ...定義的文件的XML讀取失敗。嘗試評論此部分。 TinyXML2觀察到<!-- your comment -->的XML註釋語法

+0

感謝您的回答。這就是我所做的,在用TinyXML-2讀取之前刪除行,現在它工作正常。我不知道它不讀樣式表。 – Safej

+0

是的TinyXML2是一個偉大的庫,但由於這個原因又快又輕。 Apache Xerces支持文檔類型定義(DTD)和其他功能 - 不確定樣式表。如果你需要更多的XML解析選項,你可能想檢查一下。 – JimmyNJ