ajax分页显示

1.获得dom(document)的方式?
答:SAXBuilder builder = new SAXBuilder();
this.dom = builder.build(repage.ServXml.class.getResource("news.xml"));
ServXml.java所在的路径和news.xml所在的路径一致,通过反射机制加载news.xml文件信息

测试源代码:
public class Test {
public static void main(String []args){
Document dom=null;
SAXBuilder builder = new SAXBuilder();
try {
//加载与ServXml.java在同一路径下的文件news.xml
dom = builder.build(repage.ServXml.class.getResource("news.xml"));
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print("news.size():"+dom.getRootElement().getChildren().size());
}
}

2.以下为Servlet处理输出xml格式的文本信息的代码:
Document doc = new Document();
response.setContentType("application/xml");//输出为范式良好的XML文档
..................
...组织document...
..................
XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat().setEncoding("ISO8859-1"));
outputter.output(doc,response.getWriter());

输出文本格式如下:
<list>
<currentPage>当前页数</currentPage>
<totalPage>总页数</totalPage>
<newslist>
<news id="书籍序号1">
<title>标题1</title>
<submittime>作者1</submittime>
</news>

<news id="书籍序号2">
<title>标题2</title>
<submittime>作者2</submittime>
</news>
</newslist>
</list>

3.Ajax接收获取的xml文本,解析以该文本:
var doc=xml_httpRequest.responseXML;
var currentPage=doc.getElementsByTagName("currentPage")[0].firstChild.data;//从xml文本读-当前页标
var totalPage=doc.getElementsByTagName("totalPage")[0].firstChild.data;//从xml文本读取-总页数
//读取书籍列表,
var newslist=doc.getElementsByTagName("news");
for(var i=0;i<newslist.length;i++){
var news=newslist[i];
var id=news.getAttribute("id");
var title=(news.childNodes[0].firstChild==null)?"":news.childNodes[0].firstChild.data;
var author=(news.childNodes[1].firstChild==null)?"":news.childNodes[1].firstChild.data;
}


(a)getElementsByTagName:返回的是一个标签组成的数组
例1:var doc=xml_httpRequest.responseXML;
var newslist=doc.getElementsByTagName("news");//返回由多个news标签组成的数组
(b)数组名[i]: 得到第i个标签
例1:var doc=xml_httpRequest.responseXML;
var newslist=doc.getElementsByTagName("news");//返回由多个news标签组成的数组
var news=newslist[0];//得到第1个标签news

(c)数组名[i].firstChild.data:得到标签数组内的第i个标签内的文本
例1:var currentPage=doc.getElementsByTagName("currentPage")[0].firstChild.data
(d) news.childNodes[i].firstChild.data:得到一个标签news的第i个子标签间的文本
例2:
<news id="书籍序号1">
<title>标题1</title>
<submittime>作者1</submittime>
</news>
具体过程如下:
var newslist=doc.getElementsByTagName("news");//返回由多个news标签组成的数组
var news=newslist[0];//得到第1个标签news
var title=news.childNodes[0].firstChild.data;//得到一个标签内的第1个子标签间的文本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值