翠花 18
当前位置:   article > 正文

JavaEE进阶(23) 修改XML文件中的数据_eclipse 修改xml文件里的值

eclipse 修改xml文件里的值

下面是我的Persons.xml文件内容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <persons>
  3. <person id="0">
  4. <name>翠花</name>
  5. <age>18</age>
  6. <sex></sex>
  7. </person>
  8. <person id="1">
  9. <name>老王</name>
  10. <age>20</age>
  11. <sex></sex>
  12. </person>
  13. <person id="2">
  14. <name>张三</name>
  15. <age>19</age>
  16. <sex></sex>
  17. </person>
  18. </persons>

修改数据:

  1. /**
  2. * 修改XML数据
  3. * @author 郑清
  4. */
  5. public class UpdateXMLDataDemo {
  6. static File file = new File("E:/eclipse-workspace/JavaEE_workspace/Day34XML/src/Persons.xml");//Persons.xml文件绝对路径
  7. public static void main(String[] args) throws Exception {
  8. //①获得解析器DocumentBuilder的工厂实例DocumentBuilderFactory 然后拿到DocumentBuilder对象
  9. DocumentBuilder newDocumentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  10. //②获取一个与磁盘文件关联的非空Document对象
  11. Document doc = newDocumentBuilder.parse(file);
  12. //③通过文档对象获得该文档对象的根节点
  13. Element root = doc.getDocumentElement();
  14. //查找指定节点
  15. //通过根节点获得子节点
  16. NodeList personList = root.getElementsByTagName("person");
  17. //这里获取第1个节点
  18. Node item = personList.item(0);
  19. // System.out.println(item.getTextContent());
  20. Element personElement = (Element) item;
  21. //获取personElement下面的子节点
  22. NodeList nameList = personElement.getElementsByTagName("name");
  23. // System.out.println(nameList.item(0).getTextContent());
  24. //修改
  25. nameList.item(0).setTextContent("这里是我修改的名字");
  26. //注意:XML文件是被加载到内存中 修改也是在内存中 ==》因此需要将内存中的数据同步到磁盘中
  27. /*
  28. * static TransformerFactory newInstance():获取 TransformerFactory 的新实例。
  29. * abstract Transformer newTransformer():创建执行从 Source 到 Result 的复制的新 Transformer。
  30. * abstract void transform(Source xmlSource, Result outputTarget):将 XML Source 转换为 Result。
  31. */
  32. Transformer transformer = TransformerFactory.newInstance().newTransformer();
  33. //DOMSource source = new DOMSource(doc);
  34. Source source = new DOMSource(doc);
  35. //StreamResult result = new StreamResult();
  36. Result result = new StreamResult(file);
  37. transformer.transform(source, result);//将 XML==>Source 转换为 Result
  38. }
  39. }

然后我们就可以去文件中看到所修改的数据了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/541343
推荐阅读
相关标签