获得Document
/**
* 获取文档
* 1、获得实例工厂
* 2、获得解析器
* 3、获得document
*/
添加结点
/**
* 1、获得根结点
* 2、创建结点(设置属性)
* 3、创建子节点()
* 4、添加到根节点
*/
更新结点
/**
* 更新XML
* 1、获得所有结点
* 2、获得每一本书
* 3、获得ID
* 4、更新
* *1、更新id
* *2、更新子节点
*/
删除结点
/**
* 删除XML
* 1、获得所有结点
* 2、获得每一本书
* 3、获得ID
* 4、删除
*/
保存XML
/**
* 保存xml
* 1、获得持久化对象实例工厂
* 2、获得持久化对象
* 3、将内存数据保存到磁盘
* *源————将document对象封装到Source
* *结果————将文件路径封装到Result
* 4、保存
*/
1 public static void main(String[] args) throws Exception { 2 //获取document 3 Document document=getDocument(); 4 //更新xml 5 //UpdateXml(document); 6 7 //添加XML 8 9 //AddXML(document); 10 11 12 //删除xml 13 //DeleXML(document); 14 15 16 17 /** 18 * 保存 19 */ 20 Save(document); 21 22 } 23 24 /** 25 * 1、获得根结点 26 * 2、创建结点(设置属性) 27 * 3、创建子节点() 28 * 4、添加到根节点 29 */ 30 private static void AddXML(Document document) { 31 Element rootElement=document.getDocumentElement(); 32 33 Element newElement=document.createElement("book"); 34 35 newElement.setAttribute("id", "b003"); 36 37 Element PriceElement=document.createElement("title"); 38 PriceElement.setTextContent("30"); 39 PriceElement.setAttribute("unit", "¥"); 40 newElement.appendChild(PriceElement); 41 42 rootElement.appendChild(newElement); 43 } 44 45 /** 46 * 删除XML 47 * 1、获得所有结点 48 * 2、获得每一本书 49 * 3、获得ID 50 * 4、删除 51 */ 52 53 private static void DeleXML(Document document) { 54 NodeList nodeList=document.getElementsByTagName("book"); 55 for (int i = 0; i < nodeList.getLength(); i++) { 56 Node chilNode=nodeList.item(i); 57 String id=((Element)chilNode).getAttribute("id"); 58 if("b001".equals(id)) 59 { 60 Node parentNode=chilNode.getParentNode(); 61 parentNode.removeChild(chilNode); 62 } 63 } 64 } 65 66 /** 67 * 更新XML 68 * 1、获得所有结点 69 * 2、获得每一本书 70 * 3、获得ID 71 * 4、更新 72 * *1、更新id 73 * *2、更新子节点 74 */ 75 private static void UpdateXml(Document document) { 76 NodeList nodeList=document.getElementsByTagName("book"); 77 for (int i = 0; i < nodeList.getLength(); i++) { 78 Node node=nodeList.item(i); 79 Element element=(Element) node; 80 String id=element.getAttribute("id"); 81 if("b001".equals(id)) 82 { 83 //element.setAttribute("id", "booooo"); //更新id值 84 NodeList childNode=element.getElementsByTagName("title"); 85 Element childElement=(Element) childNode.item(0);//childNode.getLength()=1 86 childElement.setTextContent("Java核心技术"); 87 } 88 } 89 } 90 91 /** 92 * 保存xml 93 * 1、获得持久化对象实例工厂 94 * 2、获得持久化对象 95 * 3、将内存数据保存到磁盘 96 * *源————将document对象封装到Source 97 * *结果————将文件路径封装到Result 98 * 4、保存 99 */ 100 private static void Save(Document document) 101 throws Exception { 102 TransformerFactory factory=TransformerFactory.newInstance(); 103 Transformer transformer=factory.newTransformer(); 104 Source xmlSource=new DOMSource(document); 105 javax.xml.transform.Result outputTarget=new StreamResult("books.jaxp.xml"); 106 107 transformer.transform(xmlSource, outputTarget); 108 109 System.out.println("done"); 110 } 111 112 /** 113 * 获取文档 114 * 1、获得实例工厂 115 * 2、获得解析器 116 * 3、获得document 117 */ 118 119 private static Document getDocument() throws ParserConfigurationException, 120 SAXException, IOException { 121 DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 122 DocumentBuilder builder=factory.newDocumentBuilder(); 123 Document document=builder.parse("books.xml"); 124 return document; 125 }
时间: 2024-09-29 03:31:52