使用jaxp对xml文件进行增删改查以及遍历操作
2015-09-28 22:19
561 查看
本文通过使用jaxp的方式来实现对于xml文件的增删改查操作,以最基础和简单的来做为实例,所操作的xml文件为person.xml,代码如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><person> <p1> <name>nike</name> <age>23</age> </p1> <p1> <name>tom</name> <age>25</age> </p1> </person>
因为方便的关系,这里将这些操作放在同一个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 Textjaxp { public static void main(String[] args) throws Exception { //getNameValue(); //获取xml中标的签值 //getSingleNameValue(); //获取xml中某个标签值 //addNode(); //添加节点 //removeNode(); //修改节点 //deleteNode(); //删除节点 showAllNodeName(); //遍历所有节点,使用递归的思想 } private static void showAllNodeName() throws Exception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); //创建Xml解析器工厂 DocumentBuilder builder = builderFactory.newDocumentBuilder(); //创建Xml解析器 Document doc = builder.parse("src/person.xml"); //解析xml返回document show(doc); } private static void show(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++) { Node node1 = list.item(i); show(node1);//递归调用 } } private static void deleteNode() throws Exception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document doc = builder.parse("src/person.xml"); NodeList list = doc.getElementsByTagName("sex"); Node sex = list.item(0); Node parent = sex.getParentNode(); parent.removeChild(sex); //xml回写(只要xml文件有改动都需要回写操作,否则结果不会改动xml文件) TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(doc), new StreamResult("src/person.xml")); } private static void removeNode() throws Ex 4000 ception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document doc = builder.parse("src/person.xml"); NodeList list = doc.getElementsByTagName("sex"); Node sex1 = list.item(0); sex1.setTextContent("nan"); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(doc), new StreamResult("src/person.xml")); } private static void addNode() throws Exception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document document = builder.parse("src/person.xml"); NodeList list = document.getElementsByTagName("p1"); Node p1 = list.item(0); Element sex1 = document.createElement("sex"); Text text1 = document.createTextNode("nv"); sex1.appendChild(text1); p1.appendChild(sex1); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.transform(new DOMSource(document), new StreamResult("src/person.xml")); } private static void getSingleNameValue() throws Exception { DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = builderFactory.newDocumentBuilder(); Document doc = builder.parse("src/person.xml"); NodeList list = doc.getElementsByTagName("name"); Node name = list.item(0); String nameValue = name.getTextContent(); System.out.println(nameValue); } private static void getNameValue() throws Exception { // TODO Auto-generated method stub DocumentBuilderFactory buliBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = buliBuilderFactory.newDocumentBuilder(); Document document = builder.parse("src/person.xml"); NodeList names = document.getElementsByTagName("name"); for(int i =0;i<names.getLength();i++) { Node name = names.item(i); String namevalue = name.getTextContent(); System.out.println(namevalue); } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- [Android]在代码里运行另一个程序的方法
- 插入排序
- 冒泡排序
- 堆排序