Simple example of java implementing XML add element operations

  • 2020-06-03 06:23:14
  • OfStack

This article is an example of how java implements XML adding elements. To share for your reference, specific as follows:


package Day01;
import java.io.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
public class CRUDDEMO {
  /*public void addElement() throws Exception{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(new File ("src/Day01/Book.xml"));
    Element newEle = doc.createElement(" The author ");
    newEle.setTextContent("ZC");
    Node nod = doc.getElementsByTagName(" book ").item(0);
    nod.appendChild(newEle);
    Source sour = new DOMSource(doc);
    Result result = new StreamResult (new FileOutputStream("src/Day01/Book.xml"));
    write (sour, result);
  }*/
  public void addElement2() throws Exception{
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // Set up the factory 
    DocumentBuilder builder = factory.newDocumentBuilder(); // get builder
    Document doc = builder.parse(new File ("src/Day01/Book.xml")); // To obtain document This is the ultimate goal 
    Element newEle = doc.createElement(" The author ");//  Create a new element / The label 
    newEle.setTextContent("ZC"); // Set the content to the element  < The author >ZC</ The author >
    Node nod = doc.getElementsByTagName(" Title: ").item(0); // through nodelist the item() Method to obtain a specific node 
    /**
     *  Use to insert elements at specific nodes   node .insertBefore methods 
     *  The first 1 The parameter is the new node to be inserted 2 One is the insertion position 
     */
    nod.insertBefore(newEle, doc.getElementsByTagName(" Title: ").item(0));
    /**
     * DOMSource(Node n)
     *  Pay attention to  element is Node the 1 Subclasses, so you can put doc Put in the constructor 
     *
     *
     */
    Source sour = new DOMSource(doc);
    Result result = new StreamResult (new FileOutputStream("src/Day01/Book.xml"));
    write (sour, result);
  }
  public void write(Source source,Result result) {
    TransformerFactory tffactory = TransformerFactory.newInstance();
    Transformer tr;
    try {
      tr = tffactory.newTransformer();
      tr.transform(source, result);
    } catch (TransformerConfigurationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (TransformerException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
  public static void main(String[] args) throws Exception {
    CRUDDEMO cr = new CRUDDEMO();
    cr.addElement2();
  }
}

XML before modification:


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
< A bookcase >
  < book >
    < Title: >Thinking in Java</ Title: >
    < The author >Eric</ The author >
    < price >$34</ price >
  </ book >
</ A bookcase >

Revised XML


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
< A bookcase >
  < book >
    < The author >ZC</ The author >
    < Title: >Thinking in Java</ Title: >
    < The author >Eric</ The author >
    < price >$34</ price >
  </ book >
</ A bookcase >

PS: Here are some more online tools for xml:

Online XML/JSON interconversion tool:
http://tools.ofstack.com/code/xmljson

XML online format/XML online compression:
http://tools.ofstack.com/code/xmlformat

XML Online compression/formatting tool:
http://tools.ofstack.com/code/xml_format_compress

XML code online formatting tool:
http://tools.ofstack.com/code/xmlcodeformat

I hope this article has been helpful in java programming.


Related articles: