xerces sax last html 值中的双引号被忽略
xerces sax last html double quotes in a value is ignored
我正在使用 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);
}
在调试模式下,我检查了 "chars" 最后一个双引号不存在并且长度正确(它不包括最后一个双引号)。听起来 Xerces 忽略了最后一个 "
如果我用实引号替换 html 双引号的代码 ",我在回调中得到了整个值...那么为什么在使用 HTML 代码来表示双引号的情况下引号,Xerces 决定拆分字符串 ??
好吧,我找到了一个主意,我将处理部分放在 endElement 回调中,而在字符回调中我将连接一个包含元素值的字符串 ;)
我正在使用 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);
}
在调试模式下,我检查了 "chars" 最后一个双引号不存在并且长度正确(它不包括最后一个双引号)。听起来 Xerces 忽略了最后一个 "
如果我用实引号替换 html 双引号的代码 ",我在回调中得到了整个值...那么为什么在使用 HTML 代码来表示双引号的情况下引号,Xerces 决定拆分字符串 ??
好吧,我找到了一个主意,我将处理部分放在 endElement 回调中,而在字符回调中我将连接一个包含元素值的字符串 ;)