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号