1,从ibatis返回xml文档
<
select
id
=
"queryAllUser" resultClass
=
"xml" xmlResultName
=
"
USER
"
>
select umid as id,
name,
gender,
age
from ajax_user
</ select >
select umid as id,
name,
gender,
age
from ajax_user
</ select >
2,controller中指定response编码 经过2,3两步就可以解决中文的乱码问题了,如果统一用UTF-8编码格式,只需在2步中
response.setContentType(
"
text/xml;charset=GBK
"
);
3,controller中指定xml文档编码
users
=
users.replaceAll(
"
UTF-8
"
,
"
GBK
"
);
response.setContentType("text/xml;charset=UTF-8");
就可以了,先初步总结为xml文档的编码格式和response的字符集要统一。
4,return null
不要指定ModelAndView,这通常是个页面,指定为null后,可以直接使用response写你要返回的xml文档内容
5,页面解析xml文档
function
filUserList(xmldoc)
...
{
// alert(xmldoc.getElementsByTagName("date")[0].childNodes[0].nodeValue);
var userArray = xmldoc.getElementsByTagName("USER");
var userArrayLen = userArray.length;
var insertData = '<table border=1><tr><th>用户ID</th><th>用户名</th><th>性别</th><th>年龄</th></tr>';
for (var i=0; i<userArrayLen; i++)...{
insertData += '<tr><td>' + userArray[i].getElementsByTagName("ID")[0].firstChild.data + '</td><td>'
+ userArray[i].getElementsByTagName("NAME")[0].firstChild.data + '</td><td>'
+ userArray[i].getElementsByTagName("GENDER")[0].firstChild.data +
'</td><td>' + userArray[i].getElementsByTagName("AGE")[0].firstChild.data + '</td></tr>';
}
insertData += '</table>';
document.getElementById("users").innerHTML = insertData;
}
// alert(xmldoc.getElementsByTagName("date")[0].childNodes[0].nodeValue);
var userArray = xmldoc.getElementsByTagName("USER");
var userArrayLen = userArray.length;
var insertData = '<table border=1><tr><th>用户ID</th><th>用户名</th><th>性别</th><th>年龄</th></tr>';
for (var i=0; i<userArrayLen; i++)...{
insertData += '<tr><td>' + userArray[i].getElementsByTagName("ID")[0].firstChild.data + '</td><td>'
+ userArray[i].getElementsByTagName("NAME")[0].firstChild.data + '</td><td>'
+ userArray[i].getElementsByTagName("GENDER")[0].firstChild.data +
'</td><td>' + userArray[i].getElementsByTagName("AGE")[0].firstChild.data + '</td></tr>';
}
insertData += '</table>';
document.getElementById("users").innerHTML = insertData;
}
xml文档示例:
<?
xml version="1.0" encoding="GBK"
?>
<
USER
><
ID
>
Max
</
ID
><
NAME
>
Eric
</
NAME
><
GENDER
>
M
</
GENDER
><
AGE type="Gregorian"
>
24
</
AGE
></
USER
>
常用的方法示例:
·
getElementsByTagName
userArray
=
xmldoc.getElementsByTagName("USER"),
返回数组
·
firstChild.data
等同于
childNodes[0].nodeValue
,后者通用性更好一些
userArray[0]. firstChild.data =
ric
·
tagName
userArray[0].tagName = AGE
·
getAttribute
userArray[0].getElementsByTagName("AGE"). GetAttribute("type") = Gregorian
相关网页: