xerces sax последние двойные кавычки html в значении игнорируются

Я использую Xerces SAX для анализа XML-файла.

Значения между двумя HTML-кавычками не анализируются правильно, отображается только одна цитата, а последняя — нет. Пример :

<Rating_Text>&quot;a3&quot;</Rating_Text>

анализируется как:

"a3

Тогда как это должно быть

"a3"

Как это исправить, пожалуйста?

//...
m_pXMLReader->setFeature(XMLUni::fgSAX2CoreValidation, true);
//...
void CXMLMsg::characters(
const   XMLCh* const    chars,
const   XMLSize_t       length
)
{
char* szData = XMLString::transcode(chars);
if(!isspace(*szData))
{
//
}
XMLString::release(&szData);
}

В режиме отладки я проверил, что в «chars» последние двойные кавычки отсутствуют и длина правильная (в нее не входят последние двойные кавычки). Похоже, Ксерсес игнорирует последний "

Если я заменю HTML-код для двойных кавычек на реальные кавычки «, я получу все значение в обратном вызове … так почему же в случае использования HTML-кода для представления двойных кавычек Xerces решает разбить строку ??

0

Решение

Ну, я нашел идею, я помещу часть обработки в обратный вызов endElement, а в обратном вызове символов я просто конкатенирую строку, содержащую значение элемента;)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]