十八.jaxp的API的查看
1.jaxp是javase的一部分
2.jaxp解析器在JDK的javax.xml.parsers包里面
3.分别针对dom和sax解析使用的类:
***dom:
DocumentBuilder:解析器类
-这个类是一个抽象类,不能new,
此类的实例可以从DocumentBuilderFactory.newDocumentBuilder()方法获取
-一个方法,可以解析xml parse(“xml路径”) 返回是Document 整个文档
-返回的document是一个接口,父节点是node,如果在document里面找不到想要的方法,到node里面去找。
-在document里面方法:
getElementsByTagName(String tagname)
--这个方法可以得到标签
--返回集合 NodeList
createElement(String tagname)
--创建标签
createTextNode(string data)
--创建文本
appendChild(Node newChild)
--把文本添加到标签下面
removeChild(Node oldChild)
--删除结点
getParentNode()
--获取父节点
NodeList
-getLength()得到集合的长度
-item(int index)下标渠道具体的值
getTextContent()
-得到标签里面的内容
** document对象是继承自element对象。
DocumentBuilderFactory:解析器工厂
***sax:
SAXParser:解析器类
SAXParesrFactory:解析器工厂
十九、使用jaxp实现查询操作
1.查询xml中所有的name元素的值
步骤:
1.创建解析器工厂
DocumentBuilderFactory.newInstance();
2.根据解析器工厂创建解析器
builderFactory.newDocumentBuilder();
3.解析xml返回document
Document document=builder.parse(“src/person.xml”);
4.得到所有的name元素
使用document.getElementsByName(“name”);
5.返回集合,遍历集合,得到每一个name元素
-遍历 getlength()item()
-得到元素里面值 使用getTextContent()
2.查询xml中第一个name元素的值
步骤:
1.创建解析器工厂
2.根据解析器工厂创建解析器
3.解析xml返回document
4.得到所有的name元素
5.使用返回集合,里面方法item,下标获取具体的元素
NodeList.item(下标); 集合下标从0开始
6.得到具体的值,使用getTextContent方法
二十、使用jaxp删除sex结点
删除< sex >nan< /sex>节点
步骤:
1.创建解析器工厂
2.根据解析器工厂创建解析器
3.解析xml返回document
4.获取sex元素
5.获取sex的父节点 使用getParentNode方法
6.删除时使用父节点删除 removeChild方法
7.回写xml
二十一、使用jaxp遍历结点
把xml中的所有结点名称打印出来
步骤:
1.创建解析器工厂
2.根据解析器工厂创建解析器
3.解析xml返回document
======使用递归实现====
4.得到根节点
5.得到根节点子节点
6.得到根节点子节点的子节点
遍历的方法:
//递归遍历的方法:
private static void list1(Node node){
//判断是元素类型时候才打印
if(node.getNodeType()==Node.ELEMENT_NODE){
System.out.println(node.getNodeName());
}
//得到一层子节点
NodeList list=node.getChildNode();
//遍历list
for(int i=0;i<list。getLength();i++){
//得到每一个结点
Node node1=list.item(i);
//继续得到node1的子节点
node1.getChildNode()
list1(node1);
}
}

被折叠的 条评论
为什么被折叠?



