• 4238阅读
  • 1回复

xml中截取某一节点,将它另存为新xml [复制链接]

上一主题 下一主题
离线qulu2009
 
只看楼主 倒序阅读 楼主  发表于: 2009-11-24
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
如题所以,我有一个xml文件,其中有n个子节点,我想把属性id=1的节点,截取出来,另存为一个新的xml文件,如何实现呢?请高手指教...
离线yb824
只看该作者 1楼 发表于: 2009-11-24
a.xml 内容
<?xml version="1.0" encoding="UTF-8"?>
<root >
   <child id="1" />
   <child id="2" />
   <child id="3" />
   <child id="4" />
</root>
//------------
QFile file("c:\\a.xml");
    file.open(QIODevice::ReadOnly);
    QDomDocument doc;
    doc.setContent(file.readAll());
    file.close();

    QDomNode root = doc.documentElement();
    if (!root.isNull())
    {
        QDomDocument newDoc;
        QDomNode newRoot = newDoc.createElement("root");
        newDoc.appendChild(newRoot);

        for (int i=0; i<root.childNodes().count(); ++i)
        {
            QDomNode node = root.childNodes().at(i);
            QDomNode attr = node.attributes().namedItem("id");
            if ( !attr.isNull() && attr.nodeValue().toInt() == 1 )
            {
                newRoot.appendChild(node);
            }
        }
        file.setFileName("c:\\b.xml");
        file.open(QIODevice::WriteOnly);
        file.write(newDoc.toByteArray());
        file.close();
    }
快速回复
限100 字节
 
上一个 下一个