2012-05-17 35 views
0

我正在使用大XML文件,我想分成幾個。然後使用MSXML解析器的C++程序將XML文件轉換爲幾個二進制文件。問題發生onece我試圖將文檔分成幾個文件,使用MSXML分析器和外部實體

<!Entity foo SYSTEM "foo.xml"> 
... 
<mytag> &foo; </mytag> 

我已經通過IE打開文檔,並將其做合併的文件,我已經看到了同樣內容的整個文件。但是當我運行我的程序時,它只是警告我,節點& foo無法解析(因爲我沒有想到在文檔中會出現這樣的問題)。因此,MSXML解析器只是將& foo作爲子節點留下,但並未將其替換爲foo.xml中的文本。 如何以與使用MSXML分析器的IE相同的方式實現外部實體解析?只是不想在我的程序中知道文檔已經分割。可能嗎?

回答

0

您是否已關閉ProhibitDTD並打開resolveExternals屬性?出於安全原因,MSXML6默認設置了所有功能。

+0

是的,我曾嘗試相應地設置此屬性爲false/true - 沒有結果。此外,在將代碼轉換爲MSXML2命名空間時,validateOnParse = false也需要使用實體,否則會發生錯誤。現在我仍然得到「foo」節點,而不是在foo.xml中聲明的節點。 IE 6.0仍然顯示正確的結果。 – Pechkin

+0

沒有找到如何自動完成解析。只是在我的代碼中實現它。感謝您的回答。 – Pechkin