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

Java处理xml

Java处理xml

  • DOM(Document Object Model)
  • 读取
  • 写入
  • 参考文献
      • [Java DOM 教程](https://geek-docs.com/java/java-tutorial/dom.html#ftoc-heading-5)

DOM(Document Object Model)

Java的DOM(Document Object Model)解析器是一种用于处理XML文档的API。允许Java程序解析XML文档并在内存中表示为树形结构,从而使得程序可以轻松地访问、修改和操作XML文档中的元素和属性。

读取

readXML接受一个字符串参数 filePath,该参数指定要读取的XML文件的路径。函数首先创建一个 DocumentBuilder 对象,并使用它来解析XML文件。然后,它遍历XML文档中所有的 元素,并提取每个元素的 id、name 和 price 属性值,并将它们打印到控制台上

public static void readXML(String filePath) {try {// 创建解析器工厂和解析器DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();// 解析XML文件File inputFile = new File(filePath);Document doc = dBuilder.parse(inputFile);doc.getDocumentElement().normalize();// 获取所有item节点的列表NodeList itemList = doc.getElementsByTagName("item");// 遍历item节点列表for (int i = 0; i < itemList.getLength(); i++) {Node itemNode = itemList.item(i);if (itemNode.getNodeType() == Node.ELEMENT_NODE) {Element itemElement = (Element) itemNode;// 获取item元素的id属性值String id = itemElement.getAttribute("id");// 获取name元素的文本内容String name = itemElement.getElementsByTagName("name").item(0).getTextContent();// 获取price元素的文本内容String price = itemElement.getElementsByTagName("price").item(0).getTextContent();// 打印item信息System.out.println("Item ID: " + id);System.out.println("Name: " + name);System.out.println("Price: " + price);System.out.println();}}} catch (Exception e) {e.printStackTrace();}}

写入

writeXML接受四个参数:filePath 是要写入的XML文件的路径,id、name 和 price 分别是新item元素的属性值和内容。函数首先使用 DocumentBuilder 对象解析指定的XML文件,并获取到文档对象 doc。然后创建一个新的 元素,并设置其属性和子元素。接着将新的 元素添加到文档的根元素中,并将修改后的文档写回到原始的XML文件中

public static void writeXML(String filePath, String id, String name, String price) {try {// 创建解析器工厂和解析器DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();// 解析XML文件File inputFile = new File(filePath);Document doc = dBuilder.parse(inputFile);doc.getDocumentElement().normalize();// 创建新的item元素Element newItem = doc.createElement("item");newItem.setAttribute("id", id);// 创建name元素并添加文本内容Element nameElement = doc.createElement("name");nameElement.appendChild(doc.createTextNode(name));// 创建price元素并添加文本内容Element priceElement = doc.createElement("price");priceElement.appendChild(doc.createTextNode(price));// 将name和price元素添加到item元素中newItem.appendChild(nameElement);newItem.appendChild(priceElement);// 将新的item元素添加到根元素中doc.getDocumentElement().appendChild(newItem);// 将修改后的文档写入原始XML文件TransformerFactory transformerFactory = TransformerFactory.newInstance();Transformer transformer = transformerFactory.newTransformer();DOMSource source = new DOMSource(doc);StreamResult result = new StreamResult(new File(filePath));transformer.transform(source, result);System.out.println("XML文件写入成功。");} catch (Exception e) {e.printStackTrace();}}

参考文献

Java DOM 教程

http://www.lryc.cn/news/350277.html

相关文章:

  • 软考中级-软件设计师 (十一)标准化和软件知识产权基础知识
  • pytest教程-46-钩子函数-pytest_sessionstart
  • Windows内核函数 - ASCII字符串和宽字符串
  • 从零开始学习MySQL 事务处理
  • 字符数组以及字符串相关的几个函数
  • AOP面向切面编程
  • C# WinForm —— 15 DateTimePicker 介绍
  • SpringBoot中六种批量更新Mysql 方式效率对比
  • 【SpringBoot】SpringBoot整合jasypt进行重要数据加密
  • 【Go语言入门学习笔记】Part1.梦开始的地方
  • 数据特征降维 | 主成分分析(PCA)附Python代码
  • 当服务实例出现故障时,Nacos如何处理?
  • 遥感数据集制作(Potsdam数据集为例):TIF图像转JPG,TIF标签转PNG,图像重叠裁剪
  • 根据web访问日志,封禁请求量异常的IP,如IP在半小 时后恢复正常则解除封禁
  • 2.go语言初始(二)
  • MQTT对比HTTP
  • 暴力数据结构之二叉树(堆的相关知识)
  • 死锁调试技巧:工作线程和用户界面线程
  • 蓝桥杯-外卖店优先级(简单写法)
  • VueRouter使用总结
  • Flink checkpoint 源码分析- Checkpoint snapshot 处理流程
  • Leaflet.canvaslabel在Ajax异步请求时bindPopup无效的解决办法
  • Go 处理错误
  • python读取excel数据写入mysql
  • flutter日期选择器仅选择年、月
  • 素数筛详解c++
  • 【Python超详细的学习笔记】Python超详细的学习笔记,涉及多个领域,是个很不错的笔记
  • TINA 使用教程
  • weblogic 任意文件上传 CVE-2018-2894
  • 我的第一个网页:武理天协