dom4j解析xml生成html
最近因为项目的需要,需要解析xml。本人在xml这方面完全是个菜鸟,有哪位大虾给予帮助,感激不尽,分数多多
本人的要求如下:
有一个.xml文件:
<modes>
<line id="1">
<cell x="1" value=""/>
<cell x="2" value=""/>
<cell x="3" value=""/>
<cell x="4" cols="14" style="label" value="AAAAAAAAAAAAAAAAAAAAAAAAAAAAA">
<font>宋体;B;12 </font>
</cell>
<cell x="18" value=""/>
<cell x="19" value=""/>
<cell x="20" value=""/>
</line>
<line id="2">
<cell x="1" value=""/>
<cell x="2" value=""/>
<cell x="3" value=""/>
<cell x="4" value=""/>
<cell x="5" value=""/>
<cell x="6" value=""/>
<cell x="7" value=""/>
<cell x="8" value=""/>
<cell x="9" value=""/>
<cell x="10" value=""/>
<cell x="11" value=""/>
<cell x="12" value=""/>
<cell x="13" value=""/>
<cell x="14" value=""/>
<cell x="15" cols="6" style="label" value="AAAAAAAAAAA"/>
</line>
<line id="3">
<cell x="1" value=""/>
<cell x="2" cols="5" style="label" value="AAAA"/>
<cell x="7" cols="5" style="text" class="string" value="AAAA" ref="1"/>
<cell x="12" value=""/>
<cell x="13" value=""/>
<cell x="14" value=""/>
<cell x="15" cols="6" style="label" value="SSSSSSSSS"/>
</line>
<line id="4">
<cell x="1" value=""/>
<cell x="2" value=""/>
<cell x="3" value=""/>
<cell x="4" value=""/>
<cell x="5" value=""/>
<cell x="6" cols="6" style="label" value="CCCCC" lb="1" tb="1" rb="1" bb="1"/>
<cell x="12" cols="2" style="label" value="XXXXXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="14" style="label" value="XXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="15" cols="2" style="label" value="XXXXXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="17" value=""/>
<cell x="18" value=""/>
<cell x="19" value=""/>
<cell x="20" value=""/>
</line>
<line id="5">
<cell x="1" value=""/>
<cell x="2" value=""/>
<cell x="3" value=""/>
<cell x="4" value=""/>
<cell x="5" value=""/>
<cell x="6" cols="6" style="label" value="XXXXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="12" cols="2" style="label" value="XXXXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="14" style="label" value="XXXXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="15" cols="2" style="text" value="XXXXX" lb="1" tb="1" rb="1" bb="1"/>
<cell x="17" value=""/>
<cell x="18" value=""/>
<cell x="19" value=""/>
<cell x="20" value=""/>
</line>
</modes>
希望利用dom4j将它转换成html片段,如下所示:
<tr>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
<td colspan="14"> <font size="12" style="family:宋体;size:12;weight:B" >AAAAAAAAAAAAAAAAAAAAAAAAAAAAA </font> </td>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
</tr>
<tr>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
<td colspan="6" >AAAAAAAAAAA </td>
</tr>
<tr>
<td>$nbsp; </td>
<td colspan="5" >AAAA </td>
<td colspan="5"> <input type="text" value="AAAA" class="string"> </td>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
<td colspan="5" >SSSSSSSSS </td>
</tr>
<tr>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
<td colspan="6">CCCCC </td>
<td colspan="2">XXXXXX </td>
<td>XXX </td>
<td colspan="2">XXXXXX </td>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
</tr>
<tr>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
<td colspan="6">XXXXX </td>
<td colspan="2">XXXXX </td>
<td>XXXXX </td>
<td colspan="2"> <input type="text" value="XXXXX"> </td>
<td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td> <td>$nbsp; </td>
</tr>
有哪位大虾可以帮帮我,最好有代码,思路也可以,在下感激不尽
[解决办法]
这有个例子你照着做做试试
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
public class DOMPageList{
public static void main(String[] args) {
try {
//创建解析工厂
DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
//指定DocumentBuilder
DocumentBuilder builder = dbfactory.newDocumentBuilder();
//从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了
Document doc = builder.parse(new File("book.xml"));
//得到Document的根(节点名:book)
Element root = doc.getDocumentElement();
System.out.println("根节点标记名:" + root.getTagName());
System.out.println("*****下面遍历XML元素*****");
//获得page元素
NodeList list = root.getElementsByTagName("content");
System.out.println(list.getLength());
//遍历page元素
for (int i=0; i < list.getLength() ; i++) {
//获得page的元素
Element element = (Element)list.item(i);
//获得ID属性
NodeList titleid = element.getElementsByTagName("id");
//获得id元素
Element idElement = (Element)titleid.item(0);
//获得id元素的第一个值
String id = idElement.getFirstChild().getNodeValue();
System.out.println("ID :" + " " + id + "title :" + " " + title + "file :" + " " + file);
}
} catch (Exception e) {
e.printStackTrace();
}
}
book.xml:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<content>
<id>100010</id>
<title>java tools</title>
<file>c:\file\</file>
</content>
</book>
[解决办法]
http://blog.csdn.net/jinchun1234/archive/2009/06/17/4274679.aspx