dom删除更新节点

来源:互联网 发布:思科交换机端口查看 编辑:程序博客网 时间:2024/05/16 15:35
//删除节点
 @Test
 public void delete() throws ParserConfigurationException, SAXException, IOException, TransformerException{
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = factory.newDocumentBuilder();
  Document document = db.parse("src/book.xml");
  
  //获取要删除的节点
  Element e=(Element) document.getElementsByTagName("要删除的节点名").item(0);
  //获取到要删除节点的父节点
  //Element parent=(Element) e.getParentNode();
  //parent.removeChild(e);
  e.getParentNode().getParentNode().removeChild(e.getParentNode());
  
  
  TransformerFactory tff = TransformerFactory.newInstance();
  Transformer tf = tff.newTransformer();
  tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml")));
 }
 
 //更新
 @Test
 public void update() throws Exception{
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = factory.newDocumentBuilder();
  Document document = db.parse("src/book.xml");
  
  //获取要更新的节点
  Element e=(Element) document.getElementsByTagName("更新的节点名").item(0);
  e.setTextContent("38元");
  
  
  TransformerFactory tff = TransformerFactory.newInstance();
  Transformer tf = tff.newTransformer();
  tf.transform(new DOMSource(document),new StreamResult(new FileOutputStream("src/book.xml")));
 }