Может быть, ошибка в rapidxml - но я не уверен, как исправить
Я заметил, что quickxml анализирует незаконно <<element/>
к элементу с именем <element
вместо выдачи ошибки.
Я думаю, что проблема заключается в определении lookup_node_name
, Комментарий
// Node name (anything but space \n \r \t / > ? \0)
Из спецификации w3.org я понимаю, что имя может состоять из букв, цифр и нескольких других символов.
Я не уверен, что будет правильным решением. Какие-либо предложения?
1 ответ
Смотря на код fastxml, lookup_node_name
это таблица поиска допустимых символов имени, и, как говорится в комментарии, запрещены только некоторые из них.
Я бы попытался добавить '<в список запрещенных символов, установив запись для ASCII char 0x3C с 0 на 1. То есть, в строке, относящейся к chars 0x30..0x3f, измените ее с этой...
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
...
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // 3
к этому:
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, // 3
Это может сработать для вас, но я не пробовал. Я вижу, вы пытались связаться с разработчиком через sourceforge, что, вероятно, является лучшим подходом...