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