JAVA DOM XML 示例代码

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.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;


public class TestT {

 public void create(Document doc) {
 // 创建元素
 Element eCate = doc.createElement("catalog");
 Element eProduct = doc.createElement("products");
 Element eProd_id = doc.createElement("prod_id");
 Element eProd_name = doc.createElement("prod_name");
 Element ePrice = doc.createElement("price");
 // 创建文本节点
 Text tProd_id = doc.createTextNode("t1");
 Text tProd_name = doc.createTextNode("手机");
 Text tPrice = doc.createTextNode("1000元");
 // 附加

 eProd_id.appendChild(tProd_id);
 eProd_name.appendChild(tProd_name);
 ePrice.appendChild(tPrice);

 eProduct.appendChild(eProd_id);
 eProduct.appendChild(eProd_name);
 eProduct.appendChild(ePrice);

 eCate.appendChild(eProduct);
 doc.appendChild(eCate);

 }

 // 添加
 public void add(Document doc) {

 Element eCate = doc.createElement("catalog");
 Element eProduct = doc.createElement("products");
 Element eProd_id = doc.createElement("prod_id");
 Element eProd_name = doc.createElement("prod_name");
 Element ePrice = doc.createElement("price");
 // 创建文本节点
 Text tProd_id = doc.createTextNode("t2");
 Text tProd_name = doc.createTextNode("脚机");
 Text tPrice = doc.createTextNode("500");
 // 附加
 eProd_id.appendChild(tProd_id);
 eProd_name.appendChild(tProd_name);
 ePrice.appendChild(tPrice);

 eProduct.appendChild(eProd_id);
 eProduct.appendChild(eProd_name);
 eProduct.appendChild(ePrice);
 eCate.appendChild(eProduct);
 Element root = doc.getDocumentElement();
 root.appendChild(eCate);

 }

 // 生成xml文件
 public void cheng(Document doc) {
 TransformerFactory tran = TransformerFactory.newInstance();
 try {
 Transformer transformer = tran.newTransformer();
 DOMSource soucre = new DOMSource(doc);
 StreamResult res = new StreamResult("cate.xml");
 transformer.setOutputProperty("encoding", "gb2312");
 transformer.transform(soucre, res);
 } catch (TransformerConfigurationException e) {
 e.printStackTrace();
 } catch (TransformerException e) {
 e.printStackTrace();
 }
 }

 // 修改
 public void modify(Document doc) {
 NodeList list = doc.getElementsByTagName("products");
 for (int i = 0; i < list.getLength(); i++) {
 Element e = (Element) list.item(i);
 Node nName = e.getElementsByTagName("prod_name").item(0);
 nName.getFirstChild().setNodeValue("中国");
 }
 }

 // 替换
 public void replace(Document doc) {
 NodeList list = doc.getElementsByTagName("products");
 for (int i = 0; i < list.getLength(); i++) {
 Element e = (Element) list.item(i);
 Node nId = e.getElementsByTagName("prod_id").item(0);
 Node nName = e.getElementsByTagName("prod_name").item(0);
 Node ele = (Node) doc.createElement("repalce");
 Text rep = doc.createTextNode("替换");
 ele.appendChild(rep);
 e.replaceChild(ele, nName);

 }

 }

 // 删除
 public void delete(Document doc) {
 NodeList list = doc.getElementsByTagName("products");
 for (int i = 0; i < list.getLength(); i++) {
 Element e = (Element) list.item(i);
 Node nId = e.getElementsByTagName("prod_id").item(0);
 e.removeChild(nId);
 }
 }

 public static void main(String[] args) {
 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 try {
 DocumentBuilder db = dbf.newDocumentBuilder();
 Document doc = db.newDocument();
 TestT t = new TestT();
 t.create(doc);
 t.add(doc);
 t.modify(doc);
 t.replace(doc);
 t.delete(doc);
 t.cheng(doc);

 } catch (ParserConfigurationException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }

 }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值