如何解析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> 展开
<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> 展开
展开全部
以下是用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>
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也不太熟悉,不好意思。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<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>
<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 输出到页面
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询