TinyXML lib не может правильно прочитать '&'
У меня есть XML-файл с некоторыми строками, такими как следующие:
<rule pat="&&&&&&&&&&&&&&&(?<B>B) ?(?<AND>&) ?(?<E>E)">
Я использую библиотеку TinyXML в C++ для разбора этого XML-файла, но когда я пытаюсь получить атрибут 'pat' таких строк, TinyXML просто игнорирует любое вхождение символа &
, То есть результат, читаемый TinyXML, выглядит следующим образом:
(?<B>B) ?(?<AND>) ?(?<E>E)
со всем &
отсутствует!
Этот символ является частью моего шаблона регулярных выражений, поэтому это приведет к дальнейшей ошибке в моей программе.
У кого-нибудь есть идеи, почему этот персонаж &
так ОСОБЕННО, а TinyXML просто не умеет читать? даже одинокий &
будут уволены?
3 ответа
Это потому, что это не правильный файл XML. Вы не можете просто вставить &
символ в любом месте в XML. Вы должны избежать этого с сущностями:
&
TinyXML будет читать только действительные файлы XML (или, по крайней мере, в основном действительные).
Точно так же вам нужно избежать <
а также >
персонажи тоже, с <
а также >
,
Это не правильно сформированный XML. Если вы хотите &
характер, вам нужно поставить &
,