用JAXP的dom方式解析XML文件
2016-10-13 15:59
357 查看
用JAXP的dom方式解析XML文件,实现增删改查操作
[b]dom方式解析XML原理[/b]
[b]
[/b]
XML文件
Java代码
[b]dom方式解析XML原理[/b]
[b]
[/b]
XML文件
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <class> <student> <name>张三</name> <sid>111111</sid> </student> <student> <name>李四</name> <sid>222222</sid> </student> </class>
Java代码
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; 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; import org.w3c.dom.Text; public class JaxpDom { static Document document; public static void main(String[] args) throws Exception { add();//在第一个学生信息里增加一个性别标签<sex>男<sex> //delete();//删除上个方法新建的sex标签 //modify();//将第二个学生的姓名改为王五 //select();//查询第一个name标签的内容 //selectAll();//遍历出所有的标签 } //在第一个学生信息里增加一个性别标签<sex>男<sex> private static void add() throws Exception { getParse(); Element element=document.createElement("sex"); Text text=document.createTextNode("男"); element.appendChild(text); document.getElementsByTagName("student").item(0).appendChild(element); writeBack(); } //删除上个方法新建的sex标签 private static void delete() throws Exception{ getParse(); document.getElementsByTagName("student").item(0).removeChild(document.getElementsByTagName("sex").item(0)); writeBack(); } //将第二个学生的姓名改为王五 private static void modify() throws Exception { getParse(); document.getElementsByTagName("name").item(1).setTextContent("王五"); writeBack(); } //查询第一个name标签的内容 private static void select() throws Exception { getParse(); System.out.println(document.getElementsByTagName("name").item(0).getTextContent()); } //遍历出所有的标签 private static void selectAll() throws Exception{ getParse(); backtrack(document); } //递归 private static void backtrack(Node node) { if(node.getNodeType()==Node.ELEMENT_NODE) { System.out.println(node.getNodeName()); } NodeList list=node.getChildNodes(); for(int i=0;i<list.getLength();i++) { backtrack(list.item(i)); } } //将document从内存写回文件 private static void writeBack()throws Exception { TransformerFactory transformerFactory=TransformerFactory.newInstance(); Transformer transformer= transformerFactory.newTransformer(); transformer.transform(new DOMSource(document), new StreamResult("src/1.xml")); } //初始化 private static void getParse() throws Exception { DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder(); document=documentBuilder.parse("src/1.xml"); } }
相关文章推荐
- JAXP:(Java API for XML Processing)DOM方式解析XML文件
- 用DOM方式解析XML(使用JAXP工具)--第一天
- xml文件的三种解析方式 DOM SAM PULL
- Dom与Pull方式解析XML文件
- DOM方式解析xml文件查看天气
- 使用JAXP的DOM方式解析XML文档(能力工场)
- XML学习之Dom方式解析XML文件
- Java解析XML文件的DOM和SAX方式
- Android学习笔记42-XML文件解析(DOM方式)
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- xml文件的解析解析方式及Dom解析与Sax解析的区别
- android解析xml文件的方式(其一DOM方式)
- 用“XML解析开发包Jaxp”对XML进行Dom方式解析-readXml操作
- XML文件解析(DOM方式)
- Android 解析XML文件的三种方式 DOM,SAX,PULL
- 用DOM方式解析XML(使用JAXP工具)--第一天
- 用Jaxp包中的DOM技术对XML文件进行解析并完成对文件的CRUD操作
- java解析xml文件(三种方式-(dom ,jdom ,dom4j)
- 解析XML文件的方式:DOM和SAX
- 使用JAXP的DOM方式解析XML文档(能力工场)