Android creation and parsing of XML (2)-DOM method

Source: Internet
Author: User

1. Dom Overview

XML is created in Dom mode. The standard XML constructor javax. xml. parsers. documentbuilder is used to create an XML document. The following content must be imported:

Javax. xml. parsers

Javax. xml. parsers. documentbuilder

Javax. xml. parsers. documentbuilderfactory

Javax. xml. parsers. parserconfigurationexception;

Javax. xml. Transform

Javax. xml. Transform. transformerfactory

Javax. xml. Transform. Transformer

Javax. xml. Transform. Dom. domsource

Javax. xml. Transform. Stream. streamresult

Javax. xml. Transform. outputkeys;

Javax. xml. Transform. transformerfactoryconfigurationerror;

Javax. xml. Transform. transformerconfigurationexception;

Javax. xml. Transform. transformerexception;

Org. W3C. Dom

Org. W3C. Dom. Document;

Org. W3C. Dom. element;

Org. W3C. Dom. node;

Org. W3C. Dom. domexception;

Org. W3C. Dom. nodelist;

Org. xml. Sax. saxexception;

SDK source code viewing path (Google Code)

Create and parse XML:




2. Create XML in Dom

Dom, you can use javax. xml. parsers. documentbuilder to create an org. W3C. Dom. Document Object.

Use the documentbuilder object from documentbuilderfactory to create and parse XML documents on Android devices. You will use the extension of the XML pull parser to parse the XML document.

Code

/** Create XML in Dom mode */<br/> Public String domcreatexml () {<br/> string xmlwriter = NULL; </P> <p> person [] persons = new person [3]; // create a node person object <br/> persons [0] = new person (1, "sunboy_2050", "http://blog.csdn.net/sunboy_2050"); <br/> persons [1] = new person (2, "Baidu", "http://www.baidu.com "); <br/> persons [2] = new person (3, "Google", "http://www.google.com "); </P> <p> try {<br/> documentbuilderfactory factory = documentbuilderfactory. newinstance (); <br/> documentbuilder builder = factory. newdocumentbuilder (); <br/> document DOC = builder. newdocument (); </P> <p> element eleroot = Doc. createelement ("root"); <br/> eleroot. setattribute ("author", "Homer"); <br/> eleroot. setattribute ("date", "2012-04-26"); <br/> Doc. appendchild (eleroot); </P> <p> int personslen = persons. length; <br/> for (INT I = 0; I <personslen; I ++) {<br/> element eleperson = Doc. createelement ("person"); <br/> eleroot. appendchild (eleperson); </P> <p> element eleid = Doc. createelement ("ID"); <br/> node nodeid = Doc. createtextnode (persons [I]. GETID () + ""); <br/> eleid. appendchild (nodeid); <br/> eleperson. appendchild (eleid); </P> <p> element elename = Doc. createelement ("name"); <br/> node nodename = Doc. createtextnode (persons [I]. getname (); <br/> elename. appendchild (nodename); <br/> eleperson. appendchild (elename); </P> <p> element eleblog = Doc. createelement ("blog"); <br/> node nodeblog = Doc. createtextnode (persons [I]. getblog (); <br/> eleblog. appendchild (nodeblog); <br/> eleperson. appendchild (eleblog); <br/>}</P> <p> properties Properties = new properties (); <br/> properties. setproperty (outputkeys. indent, "yes"); <br/> properties. setproperty (outputkeys. media_type, "XML"); <br/> properties. setproperty (outputkeys. version, "1.0"); <br/> properties. setproperty (outputkeys. encoding, "UTF-8"); <br/> properties. setproperty (outputkeys. method, "XML"); <br/> properties. setproperty (outputkeys. omit_xml_declaration, "yes"); </P> <p> transformerfactory = transformerfactory. newinstance (); <br/> transformer = transformerfactory. newtransformer (); <br/> transformer. setoutputproperties (properties); </P> <p> domsource = new domsource (Doc. getdocumentelement (); <br/> outputstream output = new bytearrayoutputstream (); <br/> streamresult result = new streamresult (output); <br/> transformer. transform (domsource, result); </P> <p> xmlwriter = output. tostring (); </P> <p>} catch (parserconfigurationexception e) {// factory. newdocumentbuilder <br/> E. printstacktrace (); <br/>} catch (domexception e) {// Doc. createelement <br/> E. printstacktrace (); <br/>} catch (transformerfactoryconfigurationerror e) {// transformerfactory. newinstance <br/> E. printstacktrace (); <br/>} catch (transformerconfigurationexception e) {// transformerfactory. newtransformer <br/> E. printstacktrace (); <br/>} catch (transformerexception e) {// transformer. transform <br/> E. printstacktrace (); <br/>}catch (exception e) {<br/> E. printstacktrace (); <br/>}</P> <p> savedxml (filename, xmlwriter. tostring (); </P> <p> return xmlwriter. tostring (); <br/>}

Running result:


3. Dom parsing XML

Dom mode. parsing XML is the inverse process of creating XML, mainly using builder. parse (is) is parsed, And the element and node attributes or values are obtained through tag, nodelist, element, and childnotes.

Code

/** Parse XML in Dom mode */<br/> Public String domresolvexml () {<br/> stringwriter xmlwriter = new stringwriter (); </P> <p> inputstream is = readxml (filename); <br/> try {<br/> documentbuilderfactory factory = documentbuilderfactory. newinstance (); <br/> documentbuilder builder = factory. newdocumentbuilder (); <br/> document DOC = builder. parse (is); </P> <p> Doc. getdocumentelement (). normalize (); <br/> nodelist nlroot = Doc. getelementsbytagname ("root"); <br/> element eleroot = (element) nlroot. item (0); <br/> string attrauthor = eleroot. getattribute ("author"); <br/> string attrdate = eleroot. getattribute ("date"); <br/> xmlwriter. append ("root "). append ("\ t"); <br/> xmlwriter. append (attrauthor ). append ("\ t"); <br/> xmlwriter. append (attrdate ). append ("\ n"); </P> <p> nodelist nlperson = eleroot. getelementsbytagname ("person"); <br/> int personslen = nlperson. getlength (); <br/> person [] persons = new person [personslen]; <br/> for (INT I = 0; I <personslen; I ++) {<br/> element eleperson = (element) nlperson. item (I); // person node <br/> person = new person (); // create a person object </P> <p> nodelist nlid = eleperson. getelementsbytagname ("ID"); <br/> element eleid = (element) nlid. item (0); <br/> string id = eleid. getchildnodes (). item (0 ). getnodevalue (); <br/> person. setid (integer. parseint (ID); </P> <p> nodelist nlname = eleperson. getelementsbytagname ("name"); <br/> element elename = (element) nlname. item (0); <br/> string name = elename. getchildnodes (). item (0 ). getnodevalue (); <br/> person. setname (name); </P> <p> nodelist nlblog = eleperson. getelementsbytagname ("blog"); <br/> element eleblog = (element) nlblog. item (0); <br/> string blog = eleblog. getchildnodes (). item (0 ). getnodevalue (); <br/> person. setblog (blog); </P> <p> xmlwriter. append (person. tostring ()). append ("\ n"); <br/> persons [I] = person; <br/>}</P> <p >}catch (parserconfigurationexception E) {// factory. newdocumentbuilder <br/> E. printstacktrace (); <br/>} catch (saxexception e) {// builder. parse <br/> E. printstacktrace (); <br/>} catch (ioexception e) {// builder. parse <br/> E. printstacktrace (); <br/>}catch (exception e) {<br/> E. printstacktrace (); <br/>}</P> <p> return xmlwriter. tostring (); <br/>}

Running result:

4. Person class

The person class is a unit instance for creating XML, a class defined based on Java object-oriented

Public class person {<br/> private int ID; <br/> private string name; <br/> private string blog; </P> <p> Public Person () {<br/> This. id =-1; <br/> This. name = ""; <br/> This. blog = ""; <br/>}</P> <p> Public Person (int id, string name, string blog) {<br/> This. id = ID; <br/> This. name = Name; <br/> This. blog = blog; <br/>}</P> <p> public person (person) {<br/> This. id = person. ID; <br/> This. name = person. name; <br/> This. blog = person. blog; <br/>}</P> <p> Public Person getperson () {<br/> return this; <br/>}</P> <p> Public void setid (int id) {<br/> This. id = ID; <br/>}</P> <p> Public int GETID () {<br/> return this. ID; <br/>}</P> <p> Public void setname (string name) {<br/> This. name = Name; <br/>}</P> <p> Public String getname () {<br/> return this. name; <br/>}</P> <p> Public void setblog (string blog) {<br/> This. blog = blog; <br/>}</P> <p> Public String getblog () {<br/> return this. blog; <br/>}</P> <p> Public String tostring () {<br/> return "person \ nid =" + ID + "\ nname =" + name + "\ nblog =" + blog + "\ n "; <br/>}< br/>}

Code download

Reference recommendations:

Org. W3C. Dom

Javax. xml. parsers

Javax. xml. Transform

Dom creates XML

Create XML using Java dom

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.