输入字符串包含“CDR 2324-5 NoCompatibilit頩nt.nж06.... tri饠par prodkjdl”。
预期的xml是:
<param> <name>comments</name> <value>CDR 2324-5 No Compatibilit頩nt. nж06....tri饠par prodkjdl</value> </param>
我正在使用以下函数将字符串插入xml。
DOM_Text newNode = document.createTextNode("");
newNode.setNodeValue( (const sChar*) value );
element.appendChild( newNode );
'value'是“CDR 2324-5 NoCompatibilit頩nt.nж06.... tri饠par prodkjdl”。
XML生成但没有标记结尾。我收到了以下错误消息,
错误:输入在所有已启动的标记结束之前结束。最后的标签 开始是'param'。
如果我删除这3个汉字,那么一切正常。
我正在使用Linux RHEL 62 从XercesVersion.hpp获取的xercesc版本是,
XERCES_VERSION_MAJOR 2
XERCES_VERSION_MINOR 5
同样的事情在windows机器上正常工作。
我怀疑,我可能会使用一些弃用的版本或功能。但我不确定。
请告诉我你的建议。
答案 0 :(得分:0)
这已经修复,sChar *无法处理中文字符。我已将字符串转换为DOMString。现在一切正常。
DOMString val = DOMString( value.c_str() );
DOM_Text newNode = document.createTextNode("");
newNode.setNodeValue( val );
element.appendChild( newNode );
现在我看到了标签的正确结束。