如何解析xml数据为html表格

<?xmlversion="1.0"encoding="UTF-8"?><xml><rowballsnum="3"opentime="2014-01-1921:30:00... <?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>
展开
 我来答
完三青若阳兔嗨1C
2014-01-22 · TA获得超过185个赞
知道答主
回答量:66
采纳率:66%
帮助的人:38.9万
展开全部
以下是用dom4j来解析xml文件的,如果要运行以下代码,必须导入dom4j的jar包。

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>
追问
可以用php来转吗
追答
我这里是全Java实现的,可以用php来转,我对php也不太熟悉,不好意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhu18
2014-01-22 · TA获得超过139个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:63.8万
展开全部
<div id='t1'></div>

<script>
var xml='<?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>';

window.onload=function(){
var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.loadXML(xml);
var nodes = xmlDoc.selectNodes('//row');

var html='';

for(var i=0;i<nodes.length;i++){
html+= "<tr><td>"+nodes[i].getAttribute('ballsnum')+"</td><td>"+nodes[i].getAttribute('opentime')+"</td><td>"+nodes[i].getAttribute('opencode')+"</td><td>"+nodes[i].getAttribute('expect')+"</td></tr>";
}

var t1 = document.getElementById("t1");
t1.innerHTML = "<table border='1'>" + html + "</table>";

}
</script>
追问
可以用php来转吗
追答
:)肯定可以啊  我对php不太熟悉  就不献丑了
可以参考下http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2012/0110/9638.html
读取每行熟悉后拼装HTML 输出到页面
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式