• 6742阅读
  • 3回复

求救:XML的属性顺序 [复制链接]

上一主题 下一主题
离线uyoufaith
 

只看楼主 正序阅读 楼主  发表于: 2008-12-09
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —

我在生成XML格式的时候想生成

    <gd:when startTime="2008-12-09" endTime="2008-12-10" >

        <gd:reminder minutes="10" method="alert" />

    </gd:when>   



但是这个排列顺序是以为字母的acsii码大小排列的,小的排在前面去了。

<gd:when endTime="2008-12-10" startTime="2008-12-09" >

        <gd:reminder method="alert" minutes="10" />

</gd:when>



在QT中有没有一个方法使得属性startTime 在前面,endTime在后面?


谢谢你了···
离线XChinux

只看该作者 3楼 发表于: 2009-01-06
属性在前在后无所谓。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线kyline
只看该作者 2楼 发表于: 2009-01-04
没一必要一定要存前面吧,用 QDomElement 获取其属性值就可以
离线uyoufaith

只看该作者 1楼 发表于: 2008-12-10
我的代码如下:


    if(entry.FREQ.trimmed() == "")    //If the freq equles null,it's respresent not recurrence
    {
        element = doc.createElement("gd:when");

        QDomAttr startTime = doc.createAttribute("startTime");
        if(entry.timeZone != "")
        {
            if(!entry.isAllDay)
            {
//                QString startTimeValue = TimeZone::changeToTimeZone(entry.timeZone,entry.startTime,timeZone).toString("yyyy-MM-ddThh:mm:ss");

//                startTime.setValue(startTimeValue);
            }
            else
            {
                QString startTimeValue = entry.startTime.toString("yyyy-MM-dd");
                startTime.setValue(startTimeValue);
            }
        }


        QDomAttr endTime = doc.createAttribute("endTime");

        if(entry.timeZone != "")
        {
            if(!entry.isAllDay)
            {
//                QString endTimeValue = TimeZone::changeToTimeZone(entry.timeZone,entry.endTime,timeZone).toString("yyyy-MM-ddThh:mm:ss");
//                endTime.setValue(endTimeValue);
            }
            else
            {
                QString endTimeValue = entry.endTime.toString("yyyy-MM-dd");
                endTime.setValue(endTimeValue);
            }
        }

        element.setAttributeNode(startTime);
        element.setAttributeNode(endTime);

        if(entry.reminder.count() != 0)
        {
            int count = entry.reminder.count();
            for( int i=0; i<count; i++ )
            {
                QDomElement reminder = doc.createElement("gd:reminder");

                QDomAttr method = doc.createAttribute("method");
                method.setValue("alert");
                reminder.setAttributeNode(method);

                QDomAttr minutes = doc.createAttribute("minutes");
                minutes.setValue(QString::number(entry.reminder.at(i)));
                reminder.setAttributeNode(minutes);

                element.appendChild(reminder);
            }
        }

        root.appendChild(element);

            /* e.g
             *
             *       <gd:when startTime='2006-04-17T15:00:00.000Z'
                            endTime='2006-04-17T17:00:00.000Z'>
                            <gd:reminder minutes="10" method="alert" />
                            <gd:reminder minutes="20" method="alert" />
                     </gd:when>
             *
             * */
    } //end if(entry.FREQ.trimmed() == "")
快速回复
限100 字节
 
上一个 下一个