开发者学堂课程【XML入门 :使用 JAXP 删除节点】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/37/detail/854
使用 JAXP 删除节点
1、使用 jaxp 删除节点
***删除<sex>nan</sex>节点
<person>
<p1>
<name>zhangsan</name>
<age>20</age>
<sex>nan</sex>
</p1>
2、在 testjaxp.java 中输入,以下代码,前三步都是一样的。
//删除<sex>nan</sex>节点
Public static void delsex()throws exception{
/*
* 1、创建解析器工厂
* 2、根据解析器工厂创建解析器
* 3、解析 xml,返回 document
*
*4、获取 sex 元素
*5、获取 sex 的父节点
*6、删除使用父节点删除 removechild 方法
*7、回写 xml
因为这里面也对里面的内容做了修改,所以要做一个回写操作。
* */
3、以下独立代码是一样,直接复制过来即可。
//创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory . newInstance();
//创建解析器
DocumentBuilder builder = builderF actory . newDocumentBuilder();
//得到 document
Document document = builder . parse(" src/person . xml");
document 里面传一个路径即可,这里不封装,直接拿过来,回写也可以封装,这里面传的参数是路径和 document。
4、//得到 sex 元素
Node sex1=document. getElementsByTagName("sex"). item(0);
因为它只有一个,返回的是 node sex1 节点
//得到 sex1 父节点
Node sex1=sex1.getparentnode();
//删除操作
P1.removechild(sex1);
//回写 xml
TransformerFactory transformerFactory = TransformerFactory . newInstance( );
Transformer transformer = transformerFactory . newTransformer();
transformer . transform( new DOMSource document),
new StreimResult(" src/person. xml "))
这样就完成了一个删除的操作。
5、接下来演示看效果,首先调用一下 delsex();,把<sex>nan</sex>删掉。运行之后就成功删除了。
6、总结:
1、创建解析器工厂
2、根据解析器工厂创建解析器
3、解析 xml,返回 document
4、获取 sex 元素
5、获取 sex 的父节点 使用 getParentNode 方法,不能自己删自己
6、删除使用父节点删除 removeChild 方法
7、回写 xml
*/