dom4j怎么修改xml节点内容

avatar
作者
猴君
阅读量:0

使用dom4j修改xml节点内容的基本步骤如下:

  1. 导入dom4j相关的包和类:
import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; 
  1. 加载xml文件并获取根节点:
Document document = DocumentHelper.parseText(xmlString); // 或者使用DocumentHelper.parseText(xmlString)加载字符串形式的xml Element root = document.getRootElement(); 
  1. 使用XPath表达式或遍历方式找到要修改的节点,并修改其内容: 使用XPath表达式:
Element node = (Element) document.selectSingleNode("//节点路径"); // 替换节点路径为实际的路径 node.setText("新的内容"); // 替换新的内容为实际要修改的内容 

使用遍历方式:

Iterator<Element> iterator = root.elementIterator("节点名"); // 替换节点名为实际的节点名 while (iterator.hasNext()) {     Element element = iterator.next();     element.setText("新的内容"); // 替换新的内容为实际要修改的内容 } 
  1. 将修改后的xml保存到文件或输出到控制台:
OutputFormat format = OutputFormat.createPrettyPrint(); // 创建格式化输出 XMLWriter writer = new XMLWriter(new FileOutputStream("文件路径"), format); // 替换文件路径为实际保存的路径 writer.write(document); writer.close(); 

或者直接输出到控制台:

OutputFormat format = OutputFormat.createPrettyPrint(); // 创建格式化输出 XMLWriter writer = new XMLWriter(System.out, format); writer.write(document); writer.close(); 

完整示例代码如下:

import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter;  import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter;  public class ModifyXML {      public static void main(String[] args) {         try {             // 加载xml文件并获取根节点             Document document = DocumentHelper.parseText("<root><node>原始内容</node></root>"); // 或者使用DocumentHelper.parseText(xmlString)加载字符串形式的xml             Element root = document.getRootElement();              // 使用XPath表达式或遍历方式找到要修改的节点,并修改其内容             Element node = (Element) document.selectSingleNode("//node"); // 替换节点路径为实际的路径             node.setText("新的内容"); // 替换新的内容为实际要修改的内容              // 将修改后的xml保存到文件或输出到控制台             OutputFormat format = OutputFormat.createPrettyPrint(); // 创建格式化输出             XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream("test.xml"), "UTF-8"), format); // 替换文件路径为实际保存的路径             writer.write(document);             writer.close();         } catch (DocumentException | IOException e) {             e.printStackTrace();         }     } } 

以上代码将会修改节点内容为"新的内容",并保存到名为"test.xml"的文件中。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!