开发手册 欢迎您!
软件开发者资料库

Java JDOM Parser - 修改XML文档

Java JDOM Parser修改XML文档 - 从简单和简单的步骤学习Java XML,从基本到高级概念,包括概述,Java XML解析器,DOM解析器,解析XML文档,查询XML文档,创建XML文档,修改XML文档,SAX Parser,JDOM XML Parser,StAX Parser,XPath Parser,DOM4J Parser,XSLT,JAXB。

演示示例

以下是我们需要修改的输入文本文件 :

         Ferrari 101      Ferrari 202               Benteley 1      Benteley 2      Benteley 3   

ModifyXmlFileDemo.java

import java.io.File;import java.io.IOException;import java.util.List;import org.jdom2.Attribute;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.JDOMException;import org.jdom2.input.SAXBuilder;import org.jdom2.output.Format;import org.jdom2.output.XMLOutputter;public class ModifyXMLFileDemo {   public static void main(String[] args) {      try {         File inputFile = new File("input.txt");         SAXBuilder saxBuilder = new SAXBuilder();         Document document = saxBuilder.build(inputFile);         Element rootElement = document.getRootElement();         //get first supercar         Element supercarElement = rootElement.getChild("supercars");         // update supercar attribute         Attribute attribute = supercarElement.getAttribute("company");         attribute.setValue("Lamborigini");         // loop the supercar child node         List list = supercarElement.getChildren();                  for (int temp = 0; temp < list.size(); temp++) {            Element carElement = list.get(temp);                        if("Ferrari 101".equals(carElement.getText())) {               carElement.setText("Lamborigini 001");            }            if("Ferrari 202".equals(carElement.getText())) {               carElement.setText("Lamborigini 002");            }         }         //get all supercars element         List supercarslist = rootElement.getChildren();                  for (int temp = 0; temp < supercarslist.size(); temp++) {            Element tempElement = supercarslist.get(temp);                        if("luxurycars".equals(tempElement.getName())) {               rootElement.removeContent(tempElement);            }                  }         XMLOutputter xmlOutput = new XMLOutputter();            // display xml         xmlOutput.setFormat(Format.getPrettyFormat());         xmlOutput.output(document, System.out);       } catch (JDOMException e) {         e.printStackTrace();      } catch (IOException e) {         e.printStackTrace();      }   }}

这会产生以下结果 :

         Lamborigini 001      Lamborigini 002