如何用SAX解析这样的XML文件,求示例代码(过滤关键标签的)
发布网友
发布时间:2022-04-19 06:29
我来回答
共2个回答
懂视网
时间:2022-04-19 10:50
我们平时常用的是< ul>< li>标签,不过dd、dt标签也蛮不错,特别是发布程序的时候功能模块列表什么的可以使用它来排版。
<dl>< /dl>< dt>< /dt>< dd>< /dd>
<dl>< /dl>用来创建一个普通的列表,< dt>< /dt>用来创建列表中的上层项目,< dd>< /dd>用来创建列表中最下层项目,< dt>< /dt>和< dd>< /dd>都必须放在< dl>< /dl>标志对之间。看一下下边的例子您就会明白了:
dl ——define list——定义列表
dt ——define list title——用于生成定义列表中各列表项的标题,重复使用可以定义多个列表项的标题。
dd——define list define——用于生成定义列表各列表项的说明文字段,重复使用可以定义多个说明文字段。dd是对应dt的简短说明或解
例子:
代码如下:
<dl>
<dt>Today
<dd>Today is yesterday.
<dt>Tomorrow
<dd>Tomorrow is today.
</dl>
例子2:
代码如下:
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题文档</title>
<style type="text/css">
<!--
dt {
float: left;
width: 60px;
margin: 0px;
padding: 0px;
}
dd {
float: left;
clear: none;
width: 290px;
margin: 0px;
padding: 0px;
}
dl {
width: 350px;
font-size: 9pt;
line-height: 1.5em;
position:relative;
margin: 0px;
padding: 0px;
left:15px;
}
.red {
color: #FF3300;
}
#box {
width: 500px;
background-color: #F1F1F7;
}
#box #content {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 20px;
}
-->
</style>
</head>
<body>
<div id="box">
<div id="content">
<img src=/Article/UploadFiles/200704/20070412091408274.gif align="left"/ >
<dl>
<dt>商品名称:</dt>
<dd><strong>[好大的一只啊] </strong>忧惠:<span class="red"><em>8.5折</em></span></dd>
<dt>商品简介:</dt>
<dd>商品名称商品名称商品品名称商品名称商品名称商品名称商品名称商品名称商品名称商品名称商品品名称商品名称商品名称商品名称商品名称 商品名称商品名称商品名称商品品名称商品名称商品名称商品名称商品名称商品名称……[<span class="red";>详细介绍</span>]</dd>
<dt>店铺地址:</dt>
<dd>商品名称</dd>
<dt>联系电话:</dt>
<dd>0000-12345678 87654321 </dd>
</dl>
</div>
</div>
</body>
</html>
热心网友
时间:2022-04-19 07:58
你用那么多方法干嘛 就是一个XML解析而已,发给你一个JDOM的方法 用简单的SAX也可以,护着干脆文本文件直接解析 都可以,没什么思路不对的,只有你没去看文档的问题
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.jdom.*
public static void main(String args[])throws Exception{
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(new FileInputStream("d:\\exampleA.xml"));
Element root = doc.getRootElement();
java.util.List books = root.getChildren();
Element book = (Element)books.get(0);
Element author = book.getChild("author");
author.setText("王五");
Element price = book.getChild("price");
price.setText(Float.toString(10.0f));
XMLOutputter outp = new XMLOutputter();
outp.output(doc, new FileOutputStream("exampleB.xml"));
}
记得送分哦~~追问可能是我的描述不太清楚,我的最终目的是要在endElement里面把读取到的数据放在一个ArrayList里面,然后在一个ListView里面逐行显示出来,现在问题是一个节点没有遍历完就end了,所以我的数据读取不完整。
我对SAX都是刚接触了,你又搞个JDOM,我也不知道你这个能不能实现我要的功能,我只是要读取然后保存数据,并不需要保存为新的xml文件。
追答数据拿到了剩下就是逻辑了,你想要要放到LISTVIEW里面就建一个对象扔进去就行了,我是输出的XML道理是一样。遍历就是把数据一个一个的读取出来 剩下你要怎么做 你就写什么就好了 ,明白没?至于用什么方法去解析XML 用sax dom jdom都没问题 都是老外写好的经典类库 拿来用就行了,牛*的话自己写一个也是一样的 核心还是文本文件的解析