DOM解析操作
只在跟节点<addresslist>下面建立一个子节点<name>
张三 www.baidu.com 李四 www.sina.com
import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;//=================================================// File Name : DOM_demo//------------------------------------------------------------------------------// Author : Common//类名:BinarySearch_Find//属性://方法://主类//Function : DOM_demopublic class DOM_demo { public static void main(String[] args) throws Exception{ // TODO 自动生成的方法存根 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //建立DocumentBuilderFactory DocumentBuilder builder = factory.newDocumentBuilder(); //建立DocumentBuilder Document doc = null; try{ doc = builder.parse("/home/common/software/coding/HelloWord/JavaWeb/bin/dom_name.xml"); }catch(SAXException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } NodeList nl = doc.getElementsByTagName("name"); //查找name节点 System.out.println("姓名:"+nl.item(1).getFirstChild().getNodeValue()); //输出第1个节点的内容 }}
一些DOM操作,循环输出节点信息
import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Element;import org.w3c.dom.Document;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;//=================================================// File Name : DOM_demo//------------------------------------------------------------------------------// Author : Common//类名:BinarySearch_Find//属性://方法://主类//Function : DOM_demopublic class DOM_demo { public static void main(String[] args) throws Exception{ // TODO 自动生成的方法存根 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //建立DocumentBuilderFactory DocumentBuilder builder = factory.newDocumentBuilder(); //建立DocumentBuilder Document doc = null; try{ doc = builder.parse("/home/common/software/coding/HelloWord/JavaWeb/bin/dom_name.xml"); }catch(SAXException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } // NodeList nl = doc.getElementsByTagName("name"); //查找name节点// System.out.println("姓名:"+nl.item(1).getFirstChild().getNodeValue()); //输出第1个节点的内容 NodeList lm = doc.getElementsByTagName("linkman"); //查找linkman节点 for(int i=0;i
生成XML文件
import java.io.File;import java.io.IOException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.OutputKeys;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.xml.sax.SAXException;//=================================================// File Name : DOM_demo//------------------------------------------------------------------------------// Author : Common//类名:BinarySearch_Find//属性://方法://主类//Function : DOM_demopublic class DOM_demo { public static void main(String[] args) throws Exception{ // TODO 自动生成的方法存根 //建立DocumentBuilderFactory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); //建立DocumentBuilder DocumentBuilder builder = factory.newDocumentBuilder(); //定义Document接口对象,通过DocumentBuilder类进行DOM树的转换操作 Document doc = null; doc = builder.newDocument(); //建立各个操作节点 Element addresslist = doc.createElement("addresslist"); Element linkman = doc.createElement("linkman"); Element name = doc.createElement("name"); Element email = doc.createElement("email"); //设置节点的文本内容,即为每一个节点添加文本节点 name.appendChild(doc.createTextNode("王五")); email.appendChild(doc.createTextNode("www.soho.com")); //设置节点关系 linkman.appendChild(name); //子节点 linkman.appendChild(email); //子节点 addresslist.appendChild(linkman); //子节点 doc.appendChild(addresslist); //文档上保存节点 //输出文档到文件中 TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = null; try{ t = tf.newTransformer(); }catch(TransformerConfigurationException e1){ e1.printStackTrace(); } t.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //设置编码 DOMSource source = new DOMSource(doc); //输出文档 StreamResult result = new StreamResult(new File("/home/common/software/coding/HelloWord/JavaWeb/bin/dom_name_output.xml")) ; try{ t.transform(source, result); //输出 }catch(TransformerException e){ e.printStackTrace(); } }}