首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将XML数据解析为用户定义的对象、SAX或DOM

将XML数据解析为用户定义的对象、SAX或DOM
EN

Stack Overflow用户
提问于 2011-11-15 02:49:34
回答 1查看 500关注 0票数 0

我想创建一个简单的函数,如下所示:

代码语言:javascript
复制
vector <User> convertXMLDataToUserList (string xmlData) { …. }

假设xmlData如下所示:

代码语言:javascript
复制
<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解析为用户对象的集合。我想使用QtXML库来处理这个问题。哪种XML解析方法更适合处理这个问题,是DOM还是SAX,原因是什么?

当然,xml数据内容不会像上面提到的那样局限于用户属性,但它也可以包含其他各种元素。任何将xml数据解析为用户定义对象的示例/教程链接都将非常有用(使用QtXML库)。

EN

回答 1

Stack Overflow用户

发布于 2012-11-09 17:33:32

先阅读这篇文章,然后选择你想要使用的东西

xml解析,发布在android项目中,dom解析,dom解析代码,解析,响应解析,sax解析,sax解析代码,源代码,web服务代码,web服务解析,xml,XML解析,xmlpull解析。

JAXP:

JAXP代表Java API for xml processing。它是来自w3c的规范。JAXP是来自SUN的API。

使用JAXP api,我们可以用两种方法处理xml文档。DOM:在处理之前将整个xml文档存储到内存中。它占用更多的内存。它可以在任何方向上遍历。树数据结构

使用DOM的步骤:

  1. 创建documentBuilderFactory

DocumentBuilderFactory.newInstance();

  • Create DocumentBuilderFactory factory= DocumentBuilder

DocumentBuilder builder=factory.newDocumentBuilder();

代码语言:javascript
复制
1. get input stream      ClassLoader cls=DomReader.class.getClassLoader(); InputStream is=cls.getResourceAsStream("xml file");     4.  parse xml file and get Document object by calling parse method on DocumentBuilder object. Document document=builder.parse(is);     5. Traverse dom tree using document object.SAX:  Simple xml parsing. It parses node by node Traversing is from top to bottom Low memory usage Back navigation is not possible with sax.

//实现所需的处理程序公共类SaxParse扩展DefaultHandler{ }//新的saxParserFactory SAXParserFactory factory=SAXParserFactory.newInstance()实例;//新的SAX解析器实例SAXParser saxparser=factory.newSAXParser();//解析xml文档SAXParser.parse(新文件(待解析的文件),新的SAXXMLParserImpl());

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8126545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档