qt如何读取xml某一节点值?xml格式是怎样的?

XML 是可扩展标记语言, 是各种应用程序之间进行数据传输的最常用的工具。能够简化数据的存储和共享。那qt如何读取xml某一节点值?下面来我们就来给大家讲解一下。

下面这段代码是获取xml节点,和获取节点属性:

//m_returnPostData 这个是xml格式的值,获取到的,QByteArray类型。
//dom.documentElement();//读取根节点
//docElem.firstChild();//读取第一个子节点
//e.tagName():获取节点名称
//e.text()获取节点value
//e.attribute ("en"):获取节点内属性为“en”的值
//nextSibling():获取下一个兄弟节点
QDomDocument dom;
//读取xml格式的值
dom.setContent(m_returnPostData);
//或者读取xml文件
QFile file("/usr/local/ui.xml");
if (!file.open(QIODevice::ReadOnly))
    return;
if (!doc.setContent( & file))
{
    file.close();
    return;
}
file.close();
QDomElement docElem = dom.documentElement();
QDomNode n = docElem.firstChild();
while (!n.isNull())
{
    QDomElement e = n.toElement();
    if (!e.isNull())
    {
        hash.insert(qPrintable(e.tagName()), qPrintable(e.text()));
        if (e.attribute("en") != "")
        {
            QString nName = e.nodeName() + "_en";
            hash.insert(qPrintable(nName), qPrintable(e.attribute("en")));
        }
    }
    n = n.nextSibling();
}

xml格式是怎样的?

XML文件格式是纯文本格式,在许多方面类似于HTML,XML由XML元素组成,每个XML元素包括一个开始标记(),一个结束标记()以及两个标记之间的内容,例如,可以将XML元素标记为价格、订单编号或名称。标记是对文档存储格式和逻辑结构的描述。在形式上,标记中可能包括注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明( DTD)和序言。

具体规则如下:

1、必须有声明语句。

XML声明是XML文档的第一句,其格式如下:

< ? xml version = "1.0"
encoding = "utf-8" ? >

2、注意大小写

在XML文档中,大小写是有区别的。“A”和“a”是不同的标记。注意在写元素时,前后标记的大小写要保持一致。最好养成一种习惯,或者全部大写,或者全部小写,或者大写第一个字母,这样可以减少因为大小写不匹配而产生的文档错误。

3、XML文档有且只有一个根元素

良好格式的XML文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。

4、属性值使用引号

在HTML代码里面,属性值可以加引号,也可以不加。但是XML规定,所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。

5、所有的标记必须有相应的结束标记

在HTML中,标记可以不成对出现,而在XML中,所有标记必须成对出现,有一个开始标记,就必须有一个结束标记,否则将被视为错误。

6、所有的空标记也必须被关闭

空标记是指标记对之间没有内容的标记,比如“”等标记。在XML中,规定所有的标记必须有结束标记。

示例:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="osg.AndroidExample"
      android:installLocation="preferExternal"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8"></uses-sdk>
    <uses-feature android:glEsVersion="0x00020000"/> <!-- OpenGL min requierements (2.0) -->
    <uses-permission android:name="android.permission.INTERNET"/>
 
    <application android:label="@string/app_name" android:icon="@drawable/osg">
        <activity android:name=".osgViewer"
                  android:label="@string/app_name" android:screenOrientation="landscape"> <!--  Force screen to landscape -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
    </application>
</manifest>

XML 应用于 Web 开发的许多方面,常用于。对开发人员来说有了xml能够简化数据的存储和共享,会使你的数据更有用。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。

推荐阅读:

java异常有哪几种?java异常如何处理?

java主函数是什么意思?java主函数有哪些分类?

java线程面试题有哪些?java线程面试题及答案