Я использую Xerces SAX для анализа файла XML.
Значения между двумя HTML-кавычками анализируются неправильно. Отображается только одна цитата, а последняя — нет. Пример :
<Rating_Text>"a3"</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);
}
В режиме отладки я проверил, что в «символах» нет последних двойных кавычек и длина правильная (она не включает последнюю двойную кавычку). Похоже, Xerces игнорирует последнее
Если я заменю HTML-код для двойных кавычек реальными кавычками», я получу все значение в обратном вызове... так почему же в случае использования HTML-кода для представления двойных кавычек Xerces решает разделить строку??
"
будет"
, а не'
. А можешь показать свой код, пожалуйста? - person Martin Honnen   schedule 25.12.2015characters
, где второй вызов имеет вторую кавычку? Я не думаю, что с SAX есть гарантия, что вы получите полные данные символов за один вызов. - person Martin Honnen   schedule 25.12.2015textContent
, чтобы получить полный текст внутри узел элемента. - person Martin Honnen   schedule 25.12.2015