Qt写xml文件
Qt有两种方式可以写xml文件,一是用QxmlStreamWriter。下面看看简单用法 void XmlHandle::writeXmlFileByStreamWriter() { QString fileName = "book.xml"; QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { return; } QXmlStreamWriter writer(&file); writer.setCodec("UTF-8"); writer.writeStartElement("Root"); writer.writeStartElement("Book"); writer.writeAttribute("Author","John"); writer.writeTextElement("Name","C++ Programming"); writer.writeTextElement("Price","99.5"); writer.writeEndElement(); writer.writeEndElement(); file.close(); } <?xml version="1.0"?> -<Root> -<Book Author="John"> <Name>C++ Programming</Name> <Price>99.5</Price> </Book> </Root> 需要注意的几点:
另外的方法就是用QDOMDocument类 void XmlHandle::writeXmlFileByDom() { QFile file(m_xmlFilePath); if (!file.open(QIODevice::WriteOnly)) { return; } QDomDocument xmlDocument; QDomElement RootElement = xmlDocument.createElement("Root"); QDomElement personElement = xmlDocument.createElement("PerSon"); xmlDocument.appendChild(RootElement); RootElement.appendChild(personElement); personElement.setAttribute("sex","man"); QDomElement ageElement = xmlDocument.createElement("Age"); QDomText ageText = xmlDocument.createTextNode("30"); ageElement.appendChild(ageText); personElement.appendChild(ageElement); QDomElement nameElement = xmlDocument.createElement("Name"); QDomText nameText = xmlDocument.createTextNode("Jack"); nameElement.appendChild(nameText); personElement.appendChild(nameElement); QTextStream outStream(&file); outStream.setCodec("UTF-8"); xmlDocument.save(outStream,3,QDomNode::EncodingFromTextStream); file.close(); } <?xmlversion="1.0" encoding="UTF-8"?> -<Root> -<PerSon sex="man"> <Age>30</Age> <Name>Jack</Name> </PerSon> </Root> 注意的点:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |