我正在使用Xerces SAX来解析XML文件。
2个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);
}
在调试模式下,我在&#34; chars&#34;中检查了最后的双引号不存在且长度正确(它不包括最后一个双引号)。听起来Xerces忽略了最后的&#34;
如果我用真实引号&#34;替换双引号的html代码,我在回调中获得了整个值...那么为什么在使用HTML代码来表示双引号的情况下,Xerces决定拆分string ??
答案 0 :(得分:0)
好吧,我发现了一个想法,我将处理部分放在endElement回调中,并且在字符回调中我将只连接一个包含元素值的字符串;)