jaxp dom 的 update/delete /save

来源:互联网 发布:java 异常处理机制5种 编辑:程序博客网 时间:2024/05/16 16:57
package cn.ouc.xml.dom;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;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;public class CUDTest {public static void main(String[] args) throws Exception{//将内存中的document,另存到books.jasp.xml文件中Document document = CUDTest.getDocument();//将document的内容修改:添加、删除、修改//添加/* 添加的内容 * <book id="b002"><title>Thinking in Java</title> <price>22000</price></book> * 给谁添加:根元素 books *///获得books根元素Element rootElement = document.getDocumentElement();//创建book元素Element  newBook = document.createElement("book");//设置id属性newBook.setAttribute("id", "b003");//创建title元素Element titleElement = document.createElement("title");//将title元素,添加到新book元素中newBook.appendChild(titleElement);//给title添加值titleElement.setTextContent("凤姐写真");//将book元素添加到books根元素中rootElement.appendChild(newBook);//保存saveXml(document);}private void delete() throws Exception{//将内存中的document,另存到books.jasp.xml文件中Document document = CUDTest.getDocument();//将document的内容修改:添加、删除、修改//删除   <book id="b001">//获得所有的书籍NodeList bookList = document.getElementsByTagName("book");for(int n = 0 ; n < bookList.getLength() ; n ++){//获得每一本书Node bookNode = bookList.item(n);//获得id的值Element bookElement = (Element) bookNode;String id = bookElement.getAttribute("id");//判断book id == b001if("b001".equals(id)){//删除 bookElement  当前节点,调用父节点,进行操作//获得父节点Node parent = bookElement.getParentNode();//操作parent.removeChild(bookElement);}}//保存saveXml(document);}private void update() throws Exception{//将内存中的document,另存到books.jasp.xml文件中Document document = CUDTest.getDocument();//将document的内容修改:添加、删除、修改//修改   <book id="b001"><title>Java 核心技术</title>   --》 Java Core//获得所有的书籍NodeList bookList = document.getElementsByTagName("book");for(int n = 0 ; n < bookList.getLength() ; n ++){//获得每一本书Node bookNode = bookList.item(n);//获得id的值Element bookElement = (Element) bookNode;String id = bookElement.getAttribute("id");//判断book id == b001if("b001".equals(id)){//获得所有的titleNodeList childList = bookElement.getElementsByTagName("title");//获得唯一一个titleNode title = childList.item(0);//获得titleSystem.out.println(title.getTextContent());//设置值title.setTextContent("Java Core");}}//保存saveXml(document);}private static void saveXml(Document document) throws Exception {//获得持久化对象实例工厂TransformerFactory factory = TransformerFactory.newInstance();//获得持久化对象Transformer transformer = factory.newTransformer();//将内存数据,保存到硬盘//源:document  将document封装到SourceSource xmlSource = new DOMSource(document);//结果:books.jasp.xml  将“文件路径”封装到ResultResult outputTarget = new StreamResult("books.jasp.xml");transformer.transform(xmlSource, outputTarget);System.out.println("done");}/** * 获得document对象 * @return */public static Document getDocument() throws Exception{//获得工厂实例DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();//获得解析器DocumentBuilder builder = factory.newDocumentBuilder();//获得documentDocument document = builder.parse("books.xml");return document;}}

0 0