怎样应用Dom4j对自动化生成的XML文件进行解析

这段代码我添加主函数之后也运行不同求解答急急急... 这段代码我添加主函数之后也运行不同 求解答 急急急 展开
 我来答
匿名用户
2016-07-06
展开全部
是的,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 {

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

我将
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<row ballsnum="3" opentime="2014-01-19 21:30:00" opencode="05,14,16,21,29,30|12" expect="14008"/>
<row ballsnum="3" opentime="2014-01-16 21:30:00" opencode="08,10,12,14,18,28|14" expect="14007"/>
</xml>
存储在D盘下的test.xml文件中

我读取D盘下的test.xml文件中的xml内容生成了一个表格
System.out.println(doc.asXML());语句将在控制台打印表格内容
打印结果如下:
<?xml version="1.0" encoding="UTF-8"?>
<table>
<tr>
<td>3</td>
<td>2014-01-19 21:30:00</td>
<td>05,14,16,21,29,30|12</td>
<td>14008</td>
</tr>
<tr>
<td>3</td>
<td>2014-01-16 21:30:00</td>
<td>08,10,12,14,18,28|14</td>
<td>14007</td>
</tr>
</table>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式