我正在使用javascript将XML转换为HTML。我遵循了这个指南:http://www.w3schools.com/xml/xml_to_html.asp
如何为XML Feed添加分页?
答案 0 :(得分:1)
根据您在问题中提供的网址,以下是对数据进行分页的方法。
html内容:
<div id="content"></div>
<div id="pagination"></div>
Javascript代码:
var page = 1, perPage = 4, content = document.getElementById('content'),
pagination = document.getElementById('pagination'), records;
function paganation(page)
{
var nextMaxItem = perPage * page;
var fromItem = (page - 1) * perPage;
var maxPages = records.length / perPage;
var xmlContent = "<table border='1'>";
for (var i = fromItem; i < nextMaxItem; i++) {
xmlContent += "<tr><td>";
xmlContent += records[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue;
xmlContent += "</td><td>";
xmlContent += records[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue;
xmlContent += "</td></tr>";
}
xmlContent += "</table>";
content.innerHTML = xmlContent;
var paginationContent = "";
var previous = page - 1;
if (page > 1) {
paginationContent += '<a href="javascript:paganation('+previous+');">Back</a>';
} else {
paginationContent += "Back";
}
for (var j = 1; j < Math.ceil(maxPages); j++) {
paginationContent += " ";
paginationContent += '<a href="javascript:paganation('+j+');">'+j+'</a>';
paginationContent += " ";
}
var next = page + 1;
if (next <= maxPages) {
paginationContent += '<a href="javascript:paganation('+next+');">Next</a>';
} else {
paginationContent += "Next";
}
pagination.innerHTML = paginationContent;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","cd_catalog.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
records = xmlDoc.getElementsByTagName("CD");
paganation(1);
答案 1 :(得分:0)
一个选项是Ruby gem,will_paginate(this page解释了使用它的基础知识。)
如果你在Rails 3中进行开发,this blog post可能会很有用。
如果您需要对XML输出本身进行分页,无论您选择哪种解决方案,您仍然需要将其分成几部分,因此您将有一些基础将其分解为页面。换句话说,将XML数据中的每一行作为一个不同的记录处理,就像数据库处理它一样,并对其进行分页。