永发信息网

XML文件为什么需要很多类来解析呢?DOM4J,既可以创建XML,也可以解析现有的XML文档,是么?

答案:1  悬赏:30  手机版
解决时间 2021-11-09 15:09
  • 提问者网友:城市野鹿
  • 2021-11-08 19:48
XML文件为什么需要很多类来解析呢?DOM4J,既可以创建XML,也可以解析现有的XML文档,是么?
最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-11-08 20:16
是的,dom4j既可以解析xml文档,也可以创建xml文档。使用dom4j必须导入dom4j的jar包。

以下是用dom4j来解析xml文件生成另一个xml文档的过程,我在这里只是将新生成的xml的文档打印,dom4j也可以新生成的xml的文档保存到磁盘。

import java.io.File;
import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class DomTest {


public static void main(String[] args) {
try {
//读取xml文件信息
File inputXml=new File("D:/test.xml");
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(inputXml);
//获取根节点元素
Element root = document.getRootElement();
//创建xml文档
Document doc = DocumentHelper.createDocument();
//创建表格的根节点元素
Element rootElement = DocumentHelper.createElement("table");
doc.setRootElement(rootElement);
//获取根节点元素的子节点元素列表
Iterator iter = root.elementIterator("row");
//循环列表
while(iter.hasNext()) {
//得到每个元素
Element rowEle=(Element)iter.next();
//创建表格中的行
元素
Element trElement = rootElement.addElement("tr");
//创建表格中行元素的子元素列
元素
//第一列存储元素的ballsnum属性值
Element ballsnum = trElement.addElement("td");
ballsnum.addText(rowEle.attributeValue("ballsnum"));
//第二列存储元素的opentime属性值
Element opentime = trElement.addElement("td");
opentime.addText(rowEle.attributeValue("opentime"));
//第三列存储元素的opencode属性值
Element opencode = trElement.addElement("td");
opencode.addText(rowEle.attributeValue("opencode"));
//第四列存储元素的expect属性值
Element expect = trElement.addElement("td");
expect.addText(rowEle.attributeValue("expect"));
}
System.out.println(doc.asXML());
} catch (Exception e) {
e.printStackTrace();
}
}
}

我将





存储在D盘下的test.xml文件中

我读取D盘下的test.xml文件中的xml内容生成了一个表格
System.out.println(doc.asXML());语句将在控制台打印表格内容
打印结果如下:














32014-01-19 21:30:0005,14,16,21,29,30|1214008
32014-01-16 21:30:0008,10,12,14,18,28|1414007
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯