xerces sax最后一个值中的双引号被忽略

时间:2015-12-25 12:16:40

标签: c++ xml sax xerces xerces-c

我正在使用Xerces SAX来解析XML文件。

2个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);
}

在调试模式下,我在&#34; chars&#34;中检查了最后的双引号不存在且长度正确(它不包括最后一个双引号)。听起来Xerces忽略了最后的&#34;

如果我用真实引号&#34;替换双引号的html代码,我在回调中获得了整个值...那么为什么在使用HTML代码来表示双引号的情况下,Xerces决定拆分string ??

1 个答案:

答案 0 :(得分:0)

好吧,我发现了一个想法,我将处理部分放在endElement回调中,并且在字符回调中我将只连接一个包含元素值的字符串;)