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写入到文件中)
		 */
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号