赞
踩
下面是我的Persons.xml文件内容
- <?xml version="1.0" encoding="UTF-8"?>
- <persons>
- <person id="0">
- <name>翠花</name>
- <age>18</age>
- <sex>女</sex>
- </person>
- <person id="1">
- <name>老王</name>
- <age>20</age>
- <sex>男</sex>
- </person>
- <person id="2">
- <name>张三</name>
- <age>19</age>
- <sex>男</sex>
- </person>
- </persons>
修改数据:
- /**
- * 修改XML数据
- * @author 郑清
- */
- public class UpdateXMLDataDemo {
-
- static File file = new File("E:/eclipse-workspace/JavaEE_workspace/Day34XML/src/Persons.xml");//Persons.xml文件绝对路径
-
- public static void main(String[] args) throws Exception {
- //①获得解析器DocumentBuilder的工厂实例DocumentBuilderFactory 然后拿到DocumentBuilder对象
- DocumentBuilder newDocumentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- //②获取一个与磁盘文件关联的非空Document对象
- Document doc = newDocumentBuilder.parse(file);
- //③通过文档对象获得该文档对象的根节点
- Element root = doc.getDocumentElement();
-
- //查找指定节点
- //通过根节点获得子节点
- NodeList personList = root.getElementsByTagName("person");
- //这里获取第1个节点
- Node item = personList.item(0);
- // System.out.println(item.getTextContent());
- Element personElement = (Element) item;
- //获取personElement下面的子节点
- NodeList nameList = personElement.getElementsByTagName("name");
- // System.out.println(nameList.item(0).getTextContent());
- //修改
- nameList.item(0).setTextContent("这里是我修改的名字");
-
- //注意:XML文件是被加载到内存中 修改也是在内存中 ==》因此需要将内存中的数据同步到磁盘中
- /*
- * static TransformerFactory newInstance():获取 TransformerFactory 的新实例。
- * abstract Transformer newTransformer():创建执行从 Source 到 Result 的复制的新 Transformer。
- * abstract void transform(Source xmlSource, Result outputTarget):将 XML Source 转换为 Result。
- */
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- //DOMSource source = new DOMSource(doc);
- Source source = new DOMSource(doc);
- //StreamResult result = new StreamResult();
- Result result = new StreamResult(file);
- transformer.transform(source, result);//将 XML==>Source 转换为 Result
- }
-
- }
然后我们就可以去文件中看到所修改的数据了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。