这几天开发项目,在UI上遇到一个难题:jquery ajax 获取返回值xml不支持,<websitename><![CDATA[http://beijing.lashou.com/]]>
</websitename>,包含CDATA 竟然获取不到值;$(xml).find(websitename).text(); 在晚上查找了半天,找到一个解决方案,
datatype:text/xml 修改为 datatype:xml
但同样的,问题也来了,在chrome浏览器和IE浏览器不兼容。
找到一个解决方案:
jQuery在用Ajax传送数据时,有一个参数是dataType,对于其的使用,手册是这么说明的。
dataType
(String) : 预期服务器返回的数据类型。如果不指定,jQuery
将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含 script 元素。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数
"json": 返回 JSON 数据 。
"jsonp": JSONP
格式。使用 JSONP
形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串
但是在使用时,发现加了
dataType时发现在不同服务器上可能出现js程序出错,当然是内部错误,造成程序不能正常运行,而且错误在firebug中不显示。但是服务器中返回的xml数据有时是字符格式的,有时是xml文档格式的,该怎样去随服务器应变呢?
$(document).ready(function(){
var path='cache/orgnization.xml';
$.post(path,{},function(xml){
alert(typeid(xml));//用户监测返回的datatype类型,一般为string
if(typeof(xml)=='string') {//判断当前的xml的类型,如果是字符串,则转化为xml文档格式
xml = getXmlDoc(xml);
}
$(xml).find('item').each(function(index) {
var id = $(this).find('id').eq(0).text();
var name = $(this).find('name').eq(0).text();
var role = $(this).find('role').eq(0).text();
var contact = $(this).find('contact').text();
var tel = $(this).find('tel').text();
var email = $(this).find('email').text();
var html="<div align='left' style='float: left; width:
42.69%; height: 108px; border: none; padding: 8px;'><p
><strong>"+name+"</strong><br>部门职
能:"+role+"<br>联系人:"+contact+"
<br>联系电话:"+tel+"<br>邮箱:"+email+"</p></div>";
$('#orgnization').append(html);
});
});
});
上面的jQuery代码中用到了一个
getXmlDoc函数,现在把他贴出来。
function getXmlDoc(retXml) {
if( retXml == "false" ){
//can not get the customer info
alert(retXml);
return false;
}else{
//get the xml data
var xmlDoc;
if (window.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=true;
xmlDoc.loadXML(retXml);
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
var oParser=new DOMParser();
xmlDoc=oParser.parseFromString(retXml,"text/xml");
}
else
{
alert('你的浏览器不支持这个脚本!');
return false;
}
}
return xmlDoc;
}
分享到:
相关推荐
XML 元素中,"<" 和 "&" 是非法的。"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。CDATA:在标记CDATA下,所有的标记、实体引用都被忽略,而被...
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA...
自己将数据导入到xml中的,希望有需要的朋友可以自己下载,格式为<!DOCTYPE PCAroot[ <!ELEMENT PCAroot (Province*)> <!ELEMENT Province (City*)> <!ELEMENT City (Area*)> <!ELEMENT Area (#PCDATA)> <!...
<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> ...
<preconditions><![CDATA[1.使用udp_bi用户在PLSQL正常登陆UAT数据库<br> (UAT数据库IP: 10.0.13.178)<br> 2.数据库脚本已下载至本地环境]]></preconditions><importance><![CDATA[2]]></importance><steps> <step>
xml version="1.0" encoding="GBK"?> <!DOCTYPE 联系人列表[ <!ENTITY content "某公司部分联系人信息"> <!ELEMENT 联系人列表 (说明,联系人)> <!ELEMENT 联系人 (姓名,ID,公司,电话,地址)> <!ELEMENT 姓名 ...
首先看实例代码: 昨天读取了以下XML, ...<param type=XML key=data> <![CDATA[ <Response> <Execution> <Status code=0 sql_code=0 description=执行成功!/> </Execution> <ResponseContent> <Paramet
本文给大家解析使用<![CDATA[ ]]>解决xml文件不被转义的问题, 对mybatis 中的<![CDATA[ ]]>相关知识感兴趣的朋友一起看看吧
gz="<xml>" &_ "<ToUserName><![CDATA["&fromusername&"]]></ToUserName>" &_ "<FromUserName><![CDATA["&tousername&"]]></FromUserName>" &_ "<CreateTime>"&now&"</CreateTime>" &_ "<MsgType>news</MsgType>" &_...
本文档包含了一个完整的实例,可以实现含有CDATA 的字符串转换成xml
主要介绍了php生成xml时添加CDATA标签的方法,实例讲述了php操作XML文件的技巧,非常具有实用价值,需要的朋友可以参考下
2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 < 代表 "<" , > 代表 ">" ,...
用android程序读取网上xml文件,这个xml文件中包含了<!CDATA>
本软件基于工作需要而开发,主要特点采用java开发,可在绝大多数平台使用,可灵活订制数据抽取后xml文件格式,可配置是否采用zip进行压缩传输,可灵活配置解析xml文件的某类节点信息。 欢迎相互交流,QQ:37605250,...
XML:标签CDATA用法 XML:标签CDATA用法
zyXML 是一个轻便、小巧的,纯易语言代码来解析XML的模块。优点:。1、不依赖任何DLL、支持库、系统组件(Microsoft.XMLDOM等对象)。2、支持UTF-8 、UTF-16 等编码。3、支持 XPath 语法来查询节点。4、支持 CDATA ...
asp.net3.5及以上版本自带序列化类读写XML中的cdata数据(JSON数据格式),看代码就明白。
android 使用saxparser 解析<![CDATA[ ]]>标签数据。 见附件实例
微信小程序支付JSAPI交易类型 已通过测试 返回例子如下: <xml><return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> <result_code><![CDATA[SUCCESS]]></result_code>