Currently, configuration files are very common in project development, such as properties, XML, JSON, and ini. Today we will briefly introduce how to parse XML. There are many ways to parse XML, which can be divided into two categories: Dom and sax.
<?xml version=”1.0″?> <employees> <employee> <name>leon</name> <sex>m</sex> <age>24</age> </employee> </employees>
Below is the Java code
Package COM. trend; import Java. io. file; import Java. io. ioexception; import javax. XML. parsers. documentbuilder; import javax. XML. parsers. documentbuilderfactory; import javax. XML. parsers. parserconfigurationexception; import javax. XML. transform. transformer; import javax. XML. transform. transformerconfigurationexception; import javax. XML. transform. transformerexception; import javax. XML. transform. transformerfactory; import javax. XML. transform. dom. domsource; import javax. XML. transform. stream. streamresult; import Org. w3C. dom. document; import Org. w3C. dom. element; import Org. w3C. dom. nodelist; import Org. XML. sax. saxexception; public class xmlfile {// parse xmlpublic void parasexml (File filename) {documentbuilderfactory factory = documentbuilderfactory. newinstance (); // obtain the document parsing factory instance try {documentbuilder builder = factory. newdocumentbuilder (); // create the DOM parser document DOC = builder. parse (filename); nodelist n = Doc. getelementsbytagname ("employee"); For (INT I = 0; I <n. getlength (); I ++) {system. out. println ("names is" + Doc. getelementsbytagname ("name "). item (I ). getfirstchild (). getnodevalue (); system. out. println ("Age is" + Doc. getelementsbytagname ("Age "). item (I ). getfirstchild (). getnodevalue (); system. out. println ("Sex is" + Doc. getelementsbytagname ("sex "). item (I ). getfirstchild (). getnodevalue () ;}} catch (parserconfigurationexception e) {e. printstacktrace ();} catch (saxexception e) {// todo auto-generated catch blocke. printstacktrace ();} catch (ioexception e) {// todo auto-generated catch blocke. printstacktrace () ;}} public void appendnode (File filename) {// Add the node documentbuilderfactory factory = documentbuilderfactory. newinstance (); try {documentbuilder builder = factory. newdocumentbuilder (); try {document DOC = builder. parse (filename); // this.doc ument = builder. newdocument (); element root = (element) Doc. getelementsbytagname ("employees "). item (0); // get the root node // system. out. println (root. get); element Employee = Doc. createelement ("employee"); // create an employee node element name = Doc. createelement ("name"); // create a namename. appendchild (Doc. createtextnode ("Li"); employee. appendchild (name); element age = Doc. createelement ("Age"); // create ageage. appendchild (Doc. createtextnode ("25"); employee. appendchild (AGE); element sex = Doc. createelement ("sex"); // create sexsex. appendchild (Doc. createtextnode ("W"); employee. appendchild (sex); root. appendchild (employee); // Add employeetransformerfactory tfactory = transformerfactory. newinstance (); transformer; try {transformer = tfactory. newtransformer (); domsource source = new domsource (DOC); streamresult result = new streamresult (filename); try {transformer. transform (source, result);} catch (transformerexception e) {// todo auto-generated catch blocke. printstacktrace () ;}} catch (transformerconfigurationexception e) {// todo auto-generated catch blocke. printstacktrace () ;}} catch (saxexception e) {// todo auto-generated catch blocke. printstacktrace ();} catch (ioexception e) {// todo auto-generated catch blocke. printstacktrace () ;}} catch (parserconfigurationexception e) {// todo auto-generated catch blocke. printstacktrace ();}}}
Below are the test classes:
Package COM. trend; import Java. io. file; public class parasexml {public static void main (string [] ARGs) {file = new file ("E: \ 123.xml"); xmlfile xml = new xmlfile (); XML. parasexml (File); // Parse XML. appendnode (File); // Add XML. parasexml (File); // parse again after adding }}