当前位置: 首页 > news >正文

[java][代码]java操作XML代码

public static void main(String[] args) throws Exception {  //得到解析器  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  DocumentBuilder builder = factory.newDocumentBuilder();  //通过解析器就可以得到代表整个内存中XML的Document对象  Document document = builder.parse("D:/1.xml");  System.out.println(document.toString());test1(document);  }  
//  1、得到某个具体的节点内容private static void test1(Document document){  NodeList nl = document.getElementsByTagName("shipper");  Node authorNode = nl.item(0); test2(authorNode);System.out.println(authorNode.getTextContent());  }  
//  2、遍历所有元素节点:打印元素的名称  private static void test2(Node node){  //确定node的类型  //方式一  
//      if(node.getNodeType()==Node.ELEMENT_NODE){  
//          //是元素  
//      }  //方式二  if(node instanceof Element){  //是元素  Element e = (Element)node;  System.out.println("name:"+e.getNodeName());//打印元素名称  System.out.println( "value:"+e.getTextContent());//打印元素名称  }  //判断有没有子节点  NodeList nl = node.getChildNodes();  for(int i=0;i<nl.getLength();i++){  Node n = nl.item(i);  test2(n);  }  }  
//  3、修改某个元素节点的主体内容:<售价>39.00元</售价>--->10元  private static void test3(Document document) throws Exception{  //得到售价  Node priceNode = document.getElementsByTagName("售价").item(0);  priceNode.setTextContent("10元");  //更新XML文件  TransformerFactory tf = TransformerFactory.newInstance();  Transformer t = tf.newTransformer();  //构建输入源:  Source source = new DOMSource(document);  //构建目标:  Result result = new StreamResult("src/book.xml");  t.transform(source, result);  }  //  4、向指定元素节点中增加子元素节点:第一本书添加子元素 <出版社>黑马程序员</出版社>  private static void test4(Document document) throws Exception{  //创建:<出版社>黑马程序员</出版社>  Element e = document.createElement("出版社");  e.setTextContent("黑马程序员");  //得到书,把新节点挂上去  Node bookNode = document.getElementsByTagName("书").item(0);  bookNode.appendChild(e);  //更新XML文件  TransformerFactory tf = TransformerFactory.newInstance();  Transformer t = tf.newTransformer();  //构建输入源:  Source source = new DOMSource(document);  //构建目标:  Result result = new StreamResult("src/book.xml");  t.transform(source, result);  }  
//  5、向指定元素节点上增加同级元素节点:第一本书<售价>前面添加<批发价>30</批发价>  private static void test5(Document document) throws Exception{  //创建新节点  Element e = document.createElement("批发价");  e.setTextContent("30元");  //找到<售价>  Node priceNode = document.getElementsByTagName("售价").item(0);  //父标签:调用insertBefore(新节点,参考节点);  Node bookNode = priceNode.getParentNode();  bookNode.insertBefore(e, priceNode);  //更新XML文件  TransformerFactory tf = TransformerFactory.newInstance();  Transformer t = tf.newTransformer();  //构建输入源:  Source source = new DOMSource(document);  //构建目标:  Result result = new StreamResult("src/book.xml");  t.transform(source, result);  }  
//  6、删除指定元素节点:删除批发价  private static void test6(Document document) throws Exception{  Node priceNode = document.getElementsByTagName("批发价").item(0);  priceNode.getParentNode().removeChild(priceNode);  //更新XML文件  TransformerFactory tf = TransformerFactory.newInstance();  Transformer t = tf.newTransformer();  //构建输入源:  Source source = new DOMSource(document);  //构建目标:  Result result = new StreamResult("src/book.xml");  t.transform(source, result);  }  
//  7、操作XML文件属性:书籍添加一个属性:ISBN=“ABC”  private static void test7(Document document) throws Exception{  Node bookNode = document.getElementsByTagName("书").item(0);  if(bookNode instanceof Element){  Element e = (Element)bookNode;  e.setAttribute("ISBN", "ABC");  }  //更新XML文件  TransformerFactory tf = TransformerFactory.newInstance();  Transformer t = tf.newTransformer();  //构建输入源:  Source source = new DOMSource(document);  //构建目标:  Result result = new StreamResult("src/book.xml");  t.transform(source, result);  }  
//  8、操作XML文件属性:获取ISBN=“ABC”  private static void test8(Document document) throws Exception{  Node bookNode = document.getElementsByTagName("书").item(0);  if(bookNode instanceof Element){  Element e = (Element)bookNode;  System.out.println(e.getAttribute("ISBN"));  }  }  

代码是一个Java程序,用于处理XML文件。它使用了DOM(Document Object Model)解析器来读取、修改和写入XML数据。以下是代码中每个方法的简要说明:

  1. main 方法:这是程序的入口点。它初始化一个XML解析器,解析指定路径的XML文件,并调用其他方法来演示不同的XML操作。

  2. test1 方法:获取名为 "shipper" 的第一个元素节点,并打印其文本内容。然后调用 test2 方法。

  3. test2 方法:递归遍历所有子节点,检查它们是否是元素节点,并打印元素的名称和文本内容。

  4. test3 方法:修改名为 "售价" 的第一个元素节点的文本内容,然后使用 Transformer 将修改后的文档写回文件。

  5. test4 方法:在名为 "书" 的第一个元素节点下添加一个新的子元素 "出版社",并设置其文本内容,然后使用 Transformer 更新文件。

  6. test5 方法:在名为 "售价" 的元素节点前插入一个新的同级元素 "批发价",然后使用 Transformer 更新文件。

  7. test6 方法:删除名为 "批发价" 的元素节点,然后使用 Transformer 更新文件。

  8. test7 方法:为名为 "书" 的第一个元素节点添加一个名为 "ISBN" 的属性,并设置其值为 "ABC",然后使用 Transformer 更新文件。

  9. test8 方法:获取名为 "书" 的第一个元素节点的 "ISBN" 属性值并打印。

请注意,这段代码中的文件路径(如 "D:/1.xml" 和 "src/book.xml")需要根据实际情况进行修改,以确保它们指向正确的XML文件。此外,代码中的异常处理是通过抛出异常来处理的,这意味着调用这些方法的代码需要处理或声明这些异常。


http://www.mrgr.cn/news/18228.html

相关文章:

  • 【Spring Boot-Spring Boot配置文件分类】
  • 正向代理、反向代理
  • 一文弄懂PCIe总线
  • 3. MyBatis 执行原理了解吗?
  • 【C语言】十六进制、二进制、字节、位、指针、数组
  • K8s搭建过程,新手闭眼入!!!超详细教程
  • Win10桌面出现Removable Storage Devices文件夹无法删除
  • python3 whl怎么安装
  • 搭建nmt部署考试系统
  • 【数据结构】Map的使用与注意事项
  • 【无标题】无题 面向对象之封装 无语!
  • 除尘雾炮机的使用成本高吗?
  • 【Java】继承性-方法的重写【主线学习笔记】
  • 2024.9.2 Python,用栈写每日温度,等差数列划分,子串所有可能性,等差数列划分,深度优先搜索解决累加数
  • 【C++】手动实现String类的封装(分文件编译)
  • 【Rust光年纪】化学计算不完全指南:Rust语言库全面解析
  • emmc协议
  • 【计算机网络复习资料】
  • 剪映剪辑影视视频字幕声音批量自动对齐教程
  • 递归 与 dfs 综合练习(四)