XML文档节点中的CData内容如果获取

toobug19 2014-09-19 06:15:26
例如下面的XML中CDATA[ ]中的内容:

<SYS><UserData><![CDATA[0000,xxxx
IT_0000,xxxx
001,001
xxxx_001,001
0605,321
xxxx_0605,321
0773,7896
xxxx_0773,7896
0811,456852]]></UserData></SYS>

C++builder6.0运行提示错误: “element does not contain a single text node”

好像之前有兄弟也在问,但没有答案。

用ChildValues+OleVariant不好使,或者我的用法是错的。

求大侠。C++builder2010可以通过,但已经破解坏了。

...全文
305 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
toobug19 2014-09-21
  • 打赏
  • 举报
回复
被我自己搞定了。看了一下,原来这中CDATA仍然被解析成Node。因此改用获取子结点方式重新获取Node。
	AnsiString str;
	childNode = rootNode->ChildNodes->FindNode("UserData");
	if (childNode == NULL)
	{
		strMsg = "没有找到UserData节点";
		MessageDlg(strMsg, mtError, TMsgDlgButtons() << mbOK, 0);
		return false;
	}
	//bool b = childNode->HasChildNodes;
	NodeList = childNode->ChildNodes;
	childNode = NodeList[0].First();
	//childNode->DOMNode->get_nodeValue(str);
	str = childNode->Text;

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧