我想创建一个简单的函数,如下所示:
vector <User> convertXMLDataToUserList (string xmlData) { …. }
让我们说xmlData如下:
<users>
<user>
<firstname>ABC</firstname>
<lastname>DEF</lastname>
<!-- …… other attributes -->
</user>
<user>
<firstname>ABC</firstname>
<lastname>DEF</lastname>
<!-- …… other attributes -->
</user>
<!-- …… More users -->
</users>
我需要将这些xmlData解析为User对象的集合。我想使用QtXML库来处理这个问题。哪种XML解析方法更适合处理这个,DOM或SAX,为什么会这样?
当然,xml数据内容不仅限于上面提到的用户属性,还可以包含其他各种元素。 将xml数据解析为用户定义对象的任何示例/教程链接都非常有用(使用QtXML库)。
答案 0 :(得分:2)
首先阅读此内容并选择您想要使用的任何内容
XML解析 2012年11月6日,星期二·发表于android项目,dom解析,dom解析代码,解析,响应解析,sax解析,sax解析代码,源代码,Web服务代码,Web服务解析,xml,xml解析,xmlpull解析< / p>
JAXP:
JAXP代表用于xml处理的Java API。 它是w3c的规范。 JAXP是SUN的API。
使用JAXP api,我们可以在两个方法中处理xml文档。 DOM: 在处理之前将整个xml文档存储到内存中。 它占用了更多的内存。 它向任何方向移动。 树数据结构
使用DOM的步骤:
创建documentBuilderFactory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
创建DocumentBuilder
DocumentBuilder builder = factory。 newDocumentBuilder();
//实现必需的处理程序 public class SaxParse扩展了DefaultHandler {} // saxParserFactory的新实例SAXParserFactory factory = SAXParserFactory.newInstance(); // SAX PARSER的新实例SAXParser saxparser = factory.newSAXParser(); //解析xml文档 SAXParser.parse(新文件(要解析的文件),新SAXXMLParserImpl());