2017-04-06 107 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

相关问题