Синтаксический анализ xml с двоеточием с помощью libxml


Я столкнулся с проблемой при попытке проанализировать XML-файл, который имеет "двоеточия".

Пример:

<PropertyList:Property>
    <property:Condition Mode="ON" />
    <property:Setting max="128" />
</PropertyList:Property>

В то время как разбор файлов без двоеточий работает идеально для меня. Я использую библиотеку ibxml, от xmlsoft. И первая инструкция, в которой я понимаю, что синтаксический анализ не работает, - это когда я делаю

xmlDocPtr doc = xmlParseFile("XMLFile.xml");

, который возвращает NULL.

Спасибо!

1 2

1 ответ:

Двоеточие в именах элементов-это не просто обычный символ, оно определяет пространство имен XML . Пространство имен должно быть объявлено для использования - например:

<root xmlns:PropertyList='http://www.example.org/schema'>

Вероятная проблема с вашим документом заключается в том, что он не объявляет используемые пространства имен, что приводит к ошибке синтаксического анализа.