jaxp的dom解析API

*jaxp是javese的一部分
*在javax.xml.parsers包中
-针对dom两个类:DocumentBuilder DoucumentBuilderFactory
-针对sax两个类:SAXParser SAXParserFactory
1  使用jaxp实现查询操作

查询xml中所有的name标签值

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <p1>
  <name>zhangsan</name>
  <age>20</age>
  </p1>
    <p1>
  <name>lisi</name>
  <age>30</age>
  </p1>
</person>

  

package cn.jaxptest;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.NodeList;

/**
 * 文档注释
 * 
 * @author eczhang
 *
 */
public class TeatJaxp {

	public static void main(String[] args) throws Exception {
		// 查询所有name元素的值
		/*
		 * 1 创建解析器工厂 
		 * 2 创建解析器 
		 * 3 解析xml返回document
		 * 4得到所有的name元素 
		 * alt+/代码提示 ctrl+shift+F
		 * 代码格式调整
		 */
		DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = builderFactory.newDocumentBuilder();
		// builder.parse("src/person.xml");
		// builder.parse("src/person.xml");
		org.w3c.dom.Document document = builder.parse("src/person.xml");
		NodeList list = document.getElementsByTagName("name");
		for (int i = 0; i < list.getLength(); i++) {
			org.w3c.dom.Node name = list.item(i);
			String string = name.getTextContent();
			System.out.println(string);
		}
	}
}

2 在第一个P1末尾添加<grade>3年级</grade>
/*
* 1 创建解析器工厂
* 2 创建解析器
* 3 解析xml返回document
* 4得到第一个P1
* 5创建grade标签
* 6创建文本createTextNode
* 7把文本添加到grade下面appendChild
* 8把grade添加到第一个P1下
* 9回写xml (将内存中的xml写入到文件中)
*/




  

posted @ 2018-05-29 14:53  ZECDLLG  阅读(180)  评论(0编辑  收藏  举报