0

输入字符串包含“CDR 2324-5 No Compatibilit頩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 );

其中“价值”是“CDR 2324-5 无兼容性。nж06....tri饠par prodkjdl”。

生成了 XML,但没有结束标记。我收到以下错误消息,

错误:输入在所有开始的标签结束之前结束。开始的最后一个标签是“参数”。

如果我删除这 3 个汉字,那么一切正常。

我正在使用 Linux RHEL 62。
取自 XercesVersion.hpp 的 xercesc 版本是,

XERCES_VERSION_MAJOR 2
XERCES_VERSION_MINOR 5

同样的事情在Windows机器上工作正常。
我怀疑,我可能会使用一些不推荐使用的版本或功能。但我不确定。

请让我知道你的建议。

4

1 回答 1

0

此问题已修复,sChar* 无法处理中文字符。我已将字符串转换为 DOMString。现在一切正常。

DOMString val = DOMString( value.c_str() );
DOM_Text newNode = document.createTextNode("");
newNode.setNodeValue( val );
element.appendChild( newNode );

现在我看到标签的正确结束。

于 2013-11-15T09:36:16.863 回答