开发者学堂课程【XML入门 :使用 JAXP 修改节点】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/37/detail/853
使用 JAXP 修改节点
1、首先做一个需求,修改第一个 p1 下面的 sex 内容是 nan.
<person>
<p1>
<name>zhangsan</name>
<age>20</age>
<sex>nv</sex>
</p1>
2、输入代码如下,前三步都是一样的,第一步创建解析器工厂,第二步根据解析器工厂创建解析器,第三步解析 xm1,返回 document。关键是第四步得到 sex 使用 item 方法。
//修改第一个 p1 下面的 sex 内容是 nan
public static void modifySex( ) throw exception{
/*
*1、创建解析器工厂
*2、根据解析器工厂创建解析器
*3、解析 xm1,返回 document
*
*4、得到 sex 使用 item 方法
*5、创建 sex 里面的值 set text content 方法
*
*6、回写 xml
**/
这就是基本步骤,接着写以下代码。
//创建解析器工厂
DocumentBuilderFactory builderFactory = DocumentBuilderFactory . newInstance();
//创建解析器
DocumentBuilder builder = builderFactory . newDocumentBuilder();
/ / 得到 document
Document document = builder . parse("src/person. xml");
//得到 sex
Node sex1 = document . getElementsByTagName("sex"). item(0);
//修改 sex 值
sex1. setTextContent( "nan");
//回写 xml
TransformerFactory transformerFactory = TransformerFactory .newInstance( );
Transformer transformer = transformerF actory . newTransformer();
transformer . transform( new DOMSource( document), new StreamResult("src/person. xml"));
}
3、接下来调用一下,是否可以修改。
*@author asus
*
*/
public class TestJaxp {
public static void main(String[] args) throws Exception {
//selectAll();
//selectSin();
//addSex();
modifySex();
}
4、首先看一下页面的原始效果,这里要把 nv 改成 nan。
<?xml version= "1.0 encoding= "UTF-8 standalone= "no ?>
<person>
<p1>
<name> zhangsan</ name>
<age>20</age>
<sex>nv</sex>
</p1>
<p1>
<name>lisi</name>
<age>30</age>
</p1>
</person>
5、运行程序,再看 person.xml 里面 nv 就变成了 nan。这就完成了一个修改的操作,使用 jaxp 修改内容的方法。setTextContent 方法直接就完成修改。
<?xml version= "1.0 encoding= "UTF-8 standalone= "no ?>
<person>
<p1>
<name> zhangsan</ name>
<age>20</age>
<sex>nan</sex>
</p1>
<p1>
<name>lisi</name>
<age>30</age>
</p1>
</person>