QT如何读取XML指定内容文件

lovebe 2011-03-16 10:07:24
请问大家,如果我想读取XML内的指定内容如:<Name>CSDN</Name>,我只想要读取“CSDN”这几个文字的话,要怎么写呢??
...全文
1241 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebe 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dbzhang800 的回复:]
引用楼主 lovebe 的回复:
请问大家,如果我想读取XML内的指定内容如:<Name>CSDN</Name>,我只想要读取“CSDN”这几个文字的话,要怎么写呢??

如果你表达的意思和你想要的一致的话,你需要的应该只是简单的正则表达式
[/Quote]
恩~也就只是很简单的文本读取而已!那里,想复杂了!

不过到后来才发现有QXmlStreamReader 这个东东,确实很便利!!谢谢大家
大熊哥V5 2011-03-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhu_xz 的回复:]
看看QXmlStreamReader就好了
[/Quote]
有两种方式,一是上面这种方式;
二是使用QDomDocment
QDomDocument doc;
QFile xmlfile(filepath); //filepath为xml文件路径
if (!xmlfile.open(QIODevice::ReadOnly))
{
return false;
}
if (!doc.setContent(&xmlfile))
{
xmlfile.close();
return false;
}
xmlfile.close();
QString strValue = doc.firstChildElement("name").nodeValue();
strValue的值就是CSDN;
第二种方式,缺点是要先把文件内容读出来,放到DOM树对象doc中,会占用一块内存。所以只适合小xml文件。
优点是能对单个节点内容进行改写。
通过setnodeValue("AAAA");这样的方法很容易就修改节点内容。
jiangheyiye 2011-03-26
  • 打赏
  • 举报
回复
QDomDocment, QDomElement
残剑待飞雪 2011-03-17
  • 打赏
  • 举报
回复
个人认为比较适合使用SAX接口处理。

在QT帮助里搜SAX, 一个是例子,一个说SAX Interface介绍。
gemfield 2011-03-17
  • 打赏
  • 举报
回复
QXmlStreamReader xml(civilnet);
while (!xml.atEnd())
{
xml.readNext();
if (xml.tokenType() == QXmlStreamReader::StartElement)
if (xml.name() == "Name")
{
QStringRef str = xml.attributes().value("data");
gemfield << str.toString();
}
}
zhu_xz 2011-03-17
  • 打赏
  • 举报
回复
看看QXmlStreamReader就好了
dbzhang800 2011-03-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 lovebe 的回复:]
请问大家,如果我想读取XML内的指定内容如:<Name>CSDN</Name>,我只想要读取“CSDN”这几个文字的话,要怎么写呢??
[/Quote]
如果你表达的意思和你想要的一致的话,你需要的应该只是简单的正则表达式
jimmy_it 2011-03-16
  • 打赏
  • 举报
回复
QXmlReader好像是可以
jimmy_it 2011-03-16
  • 打赏
  • 举报
回复
可以用libxml库来做

16,815

社区成员

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

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