Синтаксический анализ xml с двоеточием с помощью libxml
Я столкнулся с проблемой при попытке проанализировать XML-файл, который имеет "двоеточия".
Пример:
<PropertyList:Property>
<property:Condition Mode="ON" />
<property:Setting max="128" />
</PropertyList:Property>
В то время как разбор файлов без двоеточий работает идеально для меня. Я использую библиотеку ibxml, от xmlsoft. И первая инструкция, в которой я понимаю, что синтаксический анализ не работает, - это когда я делаю
xmlDocPtr doc = xmlParseFile("XMLFile.xml");
, который возвращает NULL.
Спасибо!
1 ответ:
Двоеточие в именах элементов-это не просто обычный символ, оно определяет пространство имен XML . Пространство имен должно быть объявлено для использования - например:
<root xmlns:PropertyList='http://www.example.org/schema'>
Вероятная проблема с вашим документом заключается в том, что он не объявляет используемые пространства имен, что приводит к ошибке синтаксического анализа.