javaScript 解析xml 内容.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript 解析xml 内容.相关的知识,希望对你有一定的参考价值。
xml 内容是从服务器传过来的。格式:<user><name>zs</name><pwd>123</pwd></user>
页面中可以接收到此内容,不知道怎么加载到xmlDoc 中。
var xmlResult=xhr.responseText;
alert(xmlResult);
if(window.ActiveXObject)
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlResult);
else if (document.implementation&&document.implementation.createDocument)
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlResult);
var xml = xmlDoc.documentElement;
var xmlTalbe = xml.getElementsByTagName("user");
for(var i=0;i<xmlTalbe.length;i++)
document.getElementById("msg").innerhtml=xmlTalbe[i].getElementsByTagName("name")[0].childNodes[0].nodeValue +"  密码:"+ xmlTalbe[i].getElementsByTagName("pwd")[0].childNodes[0].nodeValue;
报没有load 方法。还试过loadXml loadXmlString ,都报没有这些方法。
恩。在创建一个xmlDoc 是方法不同。其他的 还有区别吗。
追答创建的方法不同,返回的对象就会有差异,对象所拥有的属性也可能哟差异。
到w3school查文档才是王道。
服务器 可以使用String xmlString="zs123"; 这样的格式。
resp.getWriter().print(xmlString); 把这个输出。这就是xml 格式了吧。
如果 xhr.responseXml 接收的话。得到的只是null
xhr.responseText 可以接收到如上的内容 。
是服务器输出有问题,还是接收有问题 。
你输出有问题
输出的编码必须是utf-8
然后 conent-type要为 "text/xml"
按你上边的提示。加上了conent-type="text/xml" 。合用
var xmlDoc=xhr.responseXML;
var xml = xmlDoc.documentElement;
这时xmlDoc 为空。得不到内容。
你可以在火狐浏览器里面,打开你的测试网址,然后在页面上右键-查看页面信息
看看是不是 text/xml
text/xml是要在你的服务器输出那里设置输出内容类型的,
默认是 text/html
而 text/html 是不会解析为 responseXML的
使用responseXML 获取不到信息。
服务器 可以使用String xmlString="zs123"; 这样的格式。
resp.getWriter().print(xmlString); 把这个输出。这就是xml 格式了吧。
这样输出的。
=xhr.responseText;这样可以得到上边服务器发送过来的数据。
那只是输出文本内容,并不是XML格式,只是你人为的以为它是,实际电脑不知道的
追问我在输出的时候设置了输出格式:resp.setContentType("text/xml");
在接收的时候,xhr.responseXML 。还是为null.
调试 查看xhr 中的数据。responseXML 是null .
而responseText 则有值。
就不知道怎么解析了。得不到xmlDoc 。
确定是 responseXML 而不是 responseXml
<?xml version=\"1.0\" conent-type=\"text/xml\"
这里不需要 content-type 的
恩。可以了。需要把那个去掉。一直是大写的。
var xmlDoc =xhr.responseXML;
var xmlTalbe = xmlDoc.getElementsByTagName("user");
这样就能取到值了。谢谢了。
所以javascript这种不存在就返回 undefined / null 的作法,会害死不少人
本回答被提问者采纳 参考技术C 为什么不把你的xhr.responseText换成xhr.responseXML呢?这样不是直接就能得到XMLDOM了么追问我试着换成xhr.responseXML 但获取不到服务器返回的内容。
服务器是使用resp.getWriter().print(xmlString);
JavaScript Ajax解析XML数据
以上是关于javaScript 解析xml 内容.的主要内容,如果未能解决你的问题,请参考以下文章
Java 解析 XML 文档给出“Prolog 中不允许的内容”。错误[重复]