2012-05-17 1 views
0

Я использую большие XML-файлы, которые я бы хотел использовать в нескольких. Затем программа C++ с использованием анализатора MSXML преобразует XML-файл в несколько двоичных файлов. Проблема возникла onece я пытался разделить документ на несколько файлов, используяMSXML-анализатор и внешние объекты

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

Я открыл документ через IE и он сделал объединить документы, и я видел то же содержание, что и весь документ. Но когда я запустил свою программу, он просто предупредил меня, что узел & foo не может быть разрешен (поскольку я не ожидал такого в документе). Итак, анализатор MSXML просто оставляет & foo в качестве дочернего узла, но не заменяет его текстом из foo.xml. Как я могу получить внешний синтаксический анализ объекта так же, как IE, используя синтаксический анализатор MSXML? Просто не хочу знать в моей программе, что документ разделен. Является ли это возможным?

ответ

0

Вы не выключены ProhibitDTD и включено resolveExternals Недвижимость? MSXML6 устанавливает все функции по умолчанию по соображениям безопасности.

+0

Да, я попытался установить это свойство false/true соответственно - никаких результатов. Кроме того, при преобразовании кода в пространство имен MSXML2 validateOnParse = false также требуется использовать объекты, иначе возникает ошибка. Теперь я все еще получаю узел «foo» вместо узлов, объявленных в foo.xml. IE 6.0 все еще показывает правильные результаты. – Pechkin

+0

Не удалось выяснить, как выполнить полный синтаксический разбор. Просто реализовано в моем коде. Спасибо за ответы. – Pechkin