Может быть, ошибка в 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, что, вероятно, является лучшим подходом...

Другие вопросы по тегам