2012-11-07 39 views
0

我嘗試解析其中包含一個屬性標記像這樣的XML文件:使用Qdom忽略無效的XML標籤?

a="(USA & CANADA)" 

但我發現它沒有良好的XML,因爲「&」應該是URL編碼(&)

有沒有辦法告訴QDom忽略無效文本來解析文件?因爲我不能修復所有的XML文件。

我非常感謝這個問題的任何解決方案。

編輯:我想通了,有一個函數setInvalidDataPolicy(AcceptInvalidChars),但無論是使用的QDomDocument setContent()或我只是用了錯誤的方式,當這行不通......

QDomDocument xmlcontent; 
QDomImplementation impl; 
impl.setInvalidDataPolicy(QDomImplementation::AcceptInvalidChars); 
QFile XMLContentFile(pathString); 
xmlcontent.setContent(&XMLContentFile) 

任何任何想法?提前致謝!

+0

你不應該使用'QDomDocument :: implementation()'來實現嗎? –

+0

@DanMilburn當我嘗試將元素添加到我的QDomDocument中時,setInvalidDataPolicy(..)起作用。但不是爲setContent函數工作正常。但我仍然搜索解決我的無效數據....目前我試圖用qXmlStreamReader來完成它 – samoncode

回答

1

我一直在解決這個問題。 我現在使用QXmlStreamReader解析XML文件,當它引發錯誤時,我啓動一個自己的函數來修復XML文件。然後重新啓動我的分析例程。 這是做這項工作,我找不到一個更好的方法來實現這一點。