XML(三)

十八.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);
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值