我想创建一个简单的函数如下:
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库)。先读这段文字,然后选择你想使用的内容
XML解析发布于android项目,dom解析,dom解析代码,解析,响应解析,sax解析,sax解析代码,源代码,web服务代码,web服务解析,xml, xml解析,xmlpull解析
JAXP:JAXP代表用于xml处理的Java API。它是w3c的规范。JAXP是一个来自SUN的API。
使用JAXP api,我们可以用两种方法处理xml文档。DOM:在处理之前将整个xml文档存储到内存中。它占用更多的内存。它向任何方向移动。树形数据结构 使用DOM的步骤:创建documentBuilderFactory
DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance ();
创建DocumentBuilder
DocumentBuilder builder =工厂。
newDocumentBuilder ();- 获取输入流ClassLoader cls=DomReader.class.getClassLoader();InputStream是= cls。getResourceAsStream("xml文件");4. 解析xml文件,并通过调用parse方法获取文档对象在DocumentBuilder对象。文档文件= builder.parse(是);5. 使用文档对象遍历dom树。SAX:简单的xml解析。它逐个节点解析遍历是从上到下低内存使用率
//实现所需的处理程序公共类SaxParse扩展DefaultHandler{}//saxParserFactory的新实例saxParserFactory factory= saxParserFactory . newinstance ();//新的SAX解析器实例SAXParser SAXParser =factory.newSAXParser();//解析xml文档SAXParser。解析(new File(要解析的文件),new SAXXMLParserImpl());