Qt读写XML字符串,熟悉的朋友可以来看下

qq5823996 2011-10-09 03:41:42
例如:
QString s =
"<data cmd=\"trans_001\" id=\"10000\">\
<transit destid=\"测试ID用户\"></transit>\
<result rst=\"success\" reason =\"(错误原因)\"></result>\
<name>11</name>\
<comment elem=\"平均低云量\"></comment>\
<timescale time =\"旬\"></timescale>\
</data>";

QXMLStreamReader reader(s);

有没有方法能返回该字符串QString reStr = reader.getFun();
在线等
...全文
690 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
风声边界 2012-08-25
  • 打赏
  • 举报
回复
楼上怎么解决的,指教一下
qq5823996 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 openxmpp 的回复:]
如果你已经有一个QDomDocument对象
就用toString方法
QString QDomDocument::toString ( int indent = 1 ) const
Converts the parsed document back to its textual representation.
This function uses indent as the amount……
[/Quote]

高人,还想请教一下,我想写一个xml类型的字符串
QDomDocument wDom;
wDom.setContent(QString("<study name="kobe"></study>"));
以上代码中,有什么方法能在这个study中添加内容,如<study name="kobe">"这是我想加的内容,可是不会加。。。崩溃了"</study>
感谢!
qq5823996 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 openxmpp 的回复:]
如果你已经有一个QDomDocument对象
就用toString方法
QString QDomDocument::toString ( int indent = 1 ) const
Converts the parsed document back to its textual representation.
This function uses indent as the amount……
[/Quote]

问题解决了!多谢高人
乔巴好萌 2011-10-09
  • 打赏
  • 举报
回复
如果你已经有一个QDomDocument对象
就用toString方法
QString QDomDocument::toString ( int indent = 1 ) const
Converts the parsed document back to its textual representation.
This function uses indent as the amount of space to indent subelements.
qq5823996 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 openxmpp 的回复:]
没看懂你的意思
你不是有一个s(这个S是一个完整的XML片段)要送到QDomDocument去解析吗
解析过程 可以根据你想要的内容进行处理
比如解析 node名为comment的节点
这些事QDomDocument可以做的

怎么你又要返回一个xml字符串 这个是你输入的子串?
[/Quote]

对,就是我输入的字符串
乔巴好萌 2011-10-09
  • 打赏
  • 举报
回复
没看懂你的意思
你不是有一个s(这个S是一个完整的XML片段)要送到QDomDocument去解析吗
解析过程 可以根据你想要的内容进行处理
比如解析 node名为comment的节点
这些事QDomDocument可以做的

怎么你又要返回一个xml字符串 这个是你输入的子串?
qq5823996 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 openxmpp 的回复:]
你已经完整的拿到一个XML片段了
就不要用基于SAX2模型的了
改用QDomDocument好了
QDomDocument d;
d.setContent(someXML);
QDomNode n = d.firstChild();
while (!n.isNull()) {
if (n.isElement()) {
QDomElement e = n.toEl……
[/Quote]

getFun()是我自定义的,就是返回XML字符串,我想把"<data cmd=\"trans_001\" id=\"10000\">\
<transit destid=\"测试ID用户\"></transit>\
<result rst=\"success\" reason =\"(错误原因)\"></result>\
<name>11</name>\
<comment elem=\"平均低云量\"></comment>\
<timescale time =\"旬\"></timescale>\
</data>"都获取到,能行吗
乔巴好萌 2011-10-09
  • 打赏
  • 举报
回复
你已经完整的拿到一个XML片段了
就不要用基于SAX2模型的了
改用QDomDocument好了
QDomDocument d;
d.setContent(someXML);
QDomNode n = d.firstChild();
while (!n.isNull()) {
if (n.isElement()) {
QDomElement e = n.toElement();
cout << "Element name: " << e.tagName() << endl;
break;
}
n = n.nextSibling();
}
还有你的getFun()是啥
QXmlStreamReader没这个成员函数
hzymlx 2011-10-09
  • 打赏
  • 举报
回复
使用QDomDocument更合适。。

16,818

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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