XML文件的java操作有哪一些?

主要有:增 删 改 查等操作

  import   javax.xml.transform.dom.*;   
  import   javax.xml.parsers.*;   
  import   org.xml.sax.*;   
  import   org.xml.sax.helpers.*;   
  import   org.w3c.dom.*;   
  import   javax.xml.transform.*;   
  import   javax.xml.transform.stream.StreamResult     ;   
  import   javax.xml.transform.stream.StreamSource     ;   
  import   javax.xml.transform.dom.*;   
    
  import   java.util.*;   
  import   java.io.*;   
    
  public   class   DomReadDR{   
  DocumentBuilderFactory   factory;   
  DocumentBuilder   builder;   
  Document   doc;   
    
  public   DomReadDR()throws   Exception{   
  factory=DocumentBuilderFactory.newInstance();   
  builder   =   factory.newDocumentBuilder();   
  doc   =   builder.parse("test.xml");   
  }   
  public   void   Read()   throws   Exception{   
  doc.normalize();   
  NodeList   links=doc.getElementsByTagName("song");   
  for(int   i=0;i<links.getLength();i++){   
  Element   link   =   (Element)links.item(i);   
  System.out.println(link.getElementsByTagName("name").item(0).   
  getFirstChild().getNodeValue());   
  System.out.println(link.getElementsByTagName("music-by").item(0).   
  getFirstChild().getNodeValue());   
  }   
  }   
  //替换节点   
  public   int   replaceNode(String   nodeID,String   nodeValue){   
    
  doc.normalize();   
  NodeList   links=doc.getElementsByTagName("song");   
  //查找要替换的Node   
  boolean   blfindNode=false;   
  Element   link=null;   
  for(int   i=0;i<links.getLength();i++){   
  link   =   (Element)links.item(i);   
  if((link.getElementsByTagName("mId").item(0).getFirstChild().getNodeValue()).trim().equals(nodeID)){   
  blfindNode=true;   
  link.getElementsByTagName("music-by").item(0).getFirstChild().setNodeValue(nodeValue);//替换node的内容   
  break;   
  }   
  }   
  if   (!blfindNode)   
  {   
  return   1;//没有找到合适的节点   
  }   
  try{   
  TransformerFactory   tFactory=TransformerFactory.newInstance();   
  Transformer   transformer=tFactory.newTransformer();   
  //设置输出的encoding为改变gb2312   
  transformer.setOutputProperty("encoding","gb2312");     
  DOMSource   source=   new   DOMSource(doc);   
  StreamResult   result   =   new   StreamResult("test.xml");   
  transformer.transform(source,result);   
  }catch(javax.xml.transform.TransformerConfigurationException   e){   
  e.printStackTrace();   
  System.out.println(e.getMessage());   
  return   3;//写文件错误   
  }catch(javax.xml.transform.TransformerException   ex){   
  ex.printStackTrace();   
  return   3;   
  }   
  return   0;//替换成功   
  }   
  //删除节点   
  public   int   deleteNode(String   nodeID){   
    
  doc.normalize();   
  NodeList   links=doc.getElementsByTagName("song");   
  //查找要替换的Node   
  boolean   blfindNode=false;   
  Element   link=null;   
  for(int   i=0;i<links.getLength();i++){   
  link   =   (Element)links.item(i);   
  if((link.getElementsByTagName("mId").item(0).getFirstChild().getNodeValue()).trim().equals(nodeID)){   
  blfindNode=true;   
  try{   
  link.getParentNode().removeChild(link);   
  }catch(DOMException   e){   
  e.printStackTrace();   
  return   2;//Dom错误   
  }   
  break;   
  }   
  }   
    
  if   (!blfindNode)   
  {   
  return   1;//没有找到合适的节点   
  }   
  try{   
  TransformerFactory   tFactory=TransformerFactory.newInstance();   
  Transformer   transformer=tFactory.newTransformer();   
  //设置输出的encoding为改变gb2312   
    
  transformer.setOutputProperty("encoding","gb2312");     
  DOMSource   source=   new   DOMSource(doc);   
    
  StreamResult   result   =   new   StreamResult("test.xml");   
  transformer.transform(source,result);   
  }catch(javax.xml.transform.TransformerConfigurationException   e){   
  e.printStackTrace();   
  System.out.println(e.getMessage());   
  return   3;//写文件错误   
  }catch(javax.xml.transform.TransformerException   ex){   
  ex.printStackTrace();   
  return   3;   
  }   
  return   0;//替换成功   
  }   
    
  //添加节点   
  public   void   addNode(String   mId,String   name,String   musicby){   
  Text   textseg;   
  Element   link   =   doc.createElement("song");   
    
  Element   emId   =   doc.createElement("mId");   
  textseg=doc.createTextNode(mId);   
  emId.appendChild(textseg);   
  link.appendChild(emId);   
    
  Element   ename   =   doc.createElement("name");   
  textseg=doc.createTextNode(name);   
  ename.appendChild(textseg);   
  link.appendChild(ename);   
    
    
  Element   emusicby   =   doc.createElement("music-by");   
  textseg   =   doc.createTextNode(musicby);   
  emusicby.appendChild(textseg);   
  link.appendChild(emusicby);   
    
  Element   root   =   doc.getDocumentElement();   
  root.normalize();   
  root.appendChild(link);   
    
  System.out.println(doc.getDoctype());   
  try{   
    
  TransformerFactory   tFactory=TransformerFactory.newInstance();   
  Transformer   transformer=tFactory.newTransformer();   
  //设置输出的encoding为改变gb2312   
    
  transformer.setOutputProperty("encoding","gb2312");     
  DOMSource   source=   new   DOMSource(doc);   
  StreamResult   result   =   new   StreamResult("test.xml");   
  transformer.transform(source,result);   
  }catch(javax.xml.transform.TransformerConfigurationException   e){   
  e.printStackTrace();   
  System.out.println(e.getMessage());   
  }catch(javax.xml.transform.TransformerException   ex){   
  ex.printStackTrace();   
  }   
  }   
  public   static   void   main(String[]   args){   
  try{   
  DomReadDR   dr   =   new   DomReadDR();   
  dr.Read();   
  //dr.addNode("5","卡本特1","yestodayfdgdrtyrtyrtyrtyfgdfgdfgdfg   once   more");   
  System.out.println(dr.replaceNode("4","天上人间第死的克己复礼亏损大家法律亏损代理费"));   
  System.out.println(dr.deleteNode("1"));   
  }catch(Exception   e){   
  System.out.println(e.getMessage());   
  }   
  }   
    
  }   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值