真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于jquery解析xml的信息

js如何解析xml字符串

var xmlStr = 'rootpeoplename張三/nameaddress北京/address/people/root';

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的臺山網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

var result = null;

eval('result=['+$(xmlStr).find('people').map(function(){

return '{'+$('*',this).map(function(){

return $(this).attr('tagName') + ':"' + $(this).text() + '"';

}).get().join(',') + '}';

}).get().join('],[')+']');

alert(result);

//result是一個數(shù)組,如果有多個people節(jié)點,則為:[{name:"張三",address="北京"},{name:"李四",address="上海"}]

不好意思偏題了,以下是你要的結(jié)果:

var result = $(xmlStr).find('people').children().map(function(){

return $(this).attr('tagName')+'='+$(this).text();

}).get().join();

上面的都是jquery的寫法:

javascript的話:

用COM操作:

object xmlDoc = new ActiveObject('msxml2');

xmlDoc.loadXml(xmlStr);

var pNode = xmlDoc.selectSignNode('people');

var result = '';

for(var node in pNode.selectNodes('*')){

result+=(result.length0?',':'') + node.nodeName+'='+node.innerText;

}

alert(reuslt);

或者用DOM操作:

xml id='testXml' /

var result = '';

with(document.getElementById('testXml')){

innerHTML = xmlStr;

for(var child in children){

result += ',' + child.tagName + '=' + child.innerText;

}

if(result.length 0){

result = result.substring(1);

}

}

用jQuery解析XML,遇到類似.標(biāo)簽,怎么寫選擇器

那個冒號前面的w叫namespace,xml里面都會用xmlns:w="xxxx"來規(guī)定這個w所代表的url。所以兩個namespace如果指向同一個url的話,那就算一樣。其實如果你要顯示word文檔的話,直接用Word Online Application貼在你的網(wǎng)頁里面就好了,反正不用錢

jquery 如何跨域獲取XML文件?

var

qsData

=

{'searchWord':$("#searchWord").attr("value"),'currentUserId':$("#currentUserId").attr("value"),'conditionBean.pageSize':$("#pageSize").attr("value")};

$.ajax({

async:false,

url:

http://跨域的dns/document!searchJSONResult.action,

type:

"GET",

dataType:

'jsonp',

jsonp:

'jsoncallback',

data:

qsData,

timeout:

5000,

beforeSend:

function(){

//jsonp

方式此方法不被觸發(fā).原因可能是dataType如果指定為jsonp的話,就已經(jīng)不是ajax事件了

},

success:

function

(json)

{//客戶端jquery預(yù)先定義好的callback函數(shù),成功獲取跨域服務(wù)器上的json數(shù)據(jù)后,會動態(tài)執(zhí)行這個callback函數(shù)

if(json.actionErrors.length!=0){

alert(json.actionErrors);

}

genDynamicContent(qsData,type,json);

},

complete:

function(XMLHttpRequest,

textStatus){

$.unblockUI({

fadeOut:

10

});

},

error:

function(xhr){

//jsonp

方式此方法不被觸發(fā).原因可能是dataType如果指定為jsonp的話,就已經(jīng)不是ajax事件了

//請求出錯處理

alert("請求出錯(請檢查相關(guān)度網(wǎng)絡(luò)狀況.)");

}

});

注意:$.getJSON("

http://跨域的dns/document!searchJSONResult.action?name1="+value1+"jsoncallback=?",

function(json){

if(json.屬性名==值){

//

執(zhí)行代碼

}

});

這種方式其實是上例$.ajax({..})

api的一種高級封裝,有些$.ajax

api底層的參數(shù)就被封裝而不可見了.

這樣,jquery就會拼裝成如下的url

get請求

http://跨域的dns/document!searchJSONResult.action?jsoncallback=jsonp1236827957501_=1236828192549searchWord=%E7%94%A8%E4%BE%8B¤tUserId=5351conditionBean.pageSize=15

在響應(yīng)端(http://跨域的dns/document!searchJSONResult.action),

通過

jsoncallback

=

request.getParameter("jsoncallback")

得到j(luò)query端隨后要回調(diào)的js

function

name:jsonp1236827957501

然后

response的內(nèi)容為一個Script

Tags:"jsonp1236827957501("+按請求參數(shù)生成的json數(shù)組+")";

jquery就會通過回調(diào)方法動態(tài)加載調(diào)用這個js

tag:jsonp1236827957501(json數(shù)組);

這樣就達(dá)到了跨域數(shù)據(jù)交換的目的.

jsonp的最基本的原理是:動態(tài)添加一個script標(biāo)簽,而script標(biāo)簽的src屬性是沒有跨域的限制的。這樣說來,這種跨域方式其實與ajax

XmlHttpRequest協(xié)議無關(guān)了.

這樣其實"jQuery

AJAX跨域問題"就成了個偽命題了,jquery

$.ajax方法名有誤導(dǎo)人之嫌.

如果設(shè)為dataType:

'jsonp',

這個$.ajax方法就和ajax

XmlHttpRequest沒什么關(guān)系了,取而代之的則是JSONP協(xié)議.

JSONP是一個非官方的協(xié)議,它允許在服務(wù)器端集成Script

tags返回至客戶端,通過javascript

callback的形式實現(xiàn)跨域訪問

JSONP即JSON

with

Padding。由于同源策略的限制,XmlHttpRequest只允許請求當(dāng)前源(域名、協(xié)議、端口)的資源。如果要進行跨域請求,

我們可以通過使用html的script標(biāo)記來進行跨域請求,并在響應(yīng)中返回要執(zhí)行的script代碼,其中可以直接使用JSON傳遞javascript對象。

這種跨域的通訊方式稱為JSONP。

jsonCallback

函數(shù)jsonp1236827957501(....):

是瀏覽器客戶端注冊的,獲取跨域服務(wù)器上的json數(shù)據(jù)后,回調(diào)的函數(shù)

Jsonp原理:

首先在客戶端注冊一個callback

(如:'jsoncallback'),

然后把callback的名字(如:jsonp1236827957501)傳給服務(wù)器。

此時,服務(wù)器先生成

json

數(shù)據(jù)。

然后以

javascript

語法的方式,生成一個function

,

function

名字就是傳遞上來的參數(shù)

'jsoncallback'的值

jsonp1236827957501

.

最后將

json

數(shù)據(jù)直接以入?yún)⒌姆绞?,放置?/p>

function

中,這樣就生成了一段

js

語法的文檔,返回給客戶端。

客戶端瀏覽器,解析script標(biāo)簽,并執(zhí)行返回的

javascript

文檔,此時javascript文檔數(shù)據(jù),作為參數(shù),

傳入到了客戶端預(yù)先定義好的

callback

函數(shù)(如上例中jquery

$.ajax()方法封裝的的success:

function

(json))里.(動態(tài)執(zhí)行回調(diào)函數(shù))

可以說jsonp的方式原理上和script

src="http://跨域/...xx.js"/script是一致的(qq空間就是大量采用這種方式來實現(xiàn)跨域數(shù)據(jù)交換的)

.JSONP是一種腳本注入(Script

Injection)行為,所以也有一定的安全隱患.

注意,jquey是不支持post方式跨域的.

為什么呢?

雖然采用post

+動態(tài)生成iframe是可以達(dá)到post跨域的目的(有位js牛人就是這樣把jquery1.2.5

打patch的),但這樣做是一個比較極端的方式,不建議采用.

也可以說get方式的跨域是合法的,post方式從安全角度上,被認(rèn)為是不合法的,

萬不得已還是不要劍走偏鋒..

client端跨域訪問的需求看來也引起w3c的注意了,看資料說html5

WebSocket標(biāo)準(zhǔn)支持跨域的數(shù)據(jù)交換,應(yīng)該也是一個將來可選的跨域數(shù)據(jù)交換的解決方案.

JQuery 讀取XML文件失敗

jquery的 text()僅能讀取出xml中不含標(biāo)簽的文字部分。

而 html() 辦法也絕對讀不出xml中的標(biāo)簽。

現(xiàn)在給你兩種解決辦法:

辦法一,不用ajax,而用jquery的load()辦法。前提是你知道load()怎么用。

將你需要讀取的的xml代碼塊外面套一層html標(biāo)簽,比如div什么的,再給他加個ID,比如:

info

div id="xxx"

小牛情侶紙巾套,很可愛的一對小情侶哦!br /

趕快領(lǐng)回家吧!br /

超軟的面料,超可愛的造型,冷冷的冬天抱在手上也是br /

很享受的事情哦!/div/info

這樣,用

$("選擇器").load("xml文件的url #xxx")

就可以讀出。

這辦法有2種缺點。

一,這辦法不是ajax,雖然有點像

二,需要改動xml原文件。

辦法二,使用一小段jquery插件:

/**

* jQuery xml plugin - Converts XML node(s) to string

* Dual licensed under the MIT and GPL

* Copyright (c) 2009 Radim Svoboda

* @version 1.0.0

*/

jQuery.fn.xml=function(all){var s="";if(this.length)

(((typeof all!='undefined')all)?this:jQuery(this[0]).contents()).each(function());return s;};

以上為插件代碼。

使用以上代碼后,就可以使用ajax讀取xml文件中的文字和標(biāo)簽了。比如:

$.get('xml文件url',function(data));

其中xml()括號里有兩個參數(shù)0和1可以選。

0代表讀取 info標(biāo)簽里面的內(nèi)容

1代表讀取 info標(biāo)簽以及標(biāo)簽里面的內(nèi)容

這種辦法,缺點暫時沒發(fā)現(xiàn)。

好了,我寫了那么多,分給我吧?


當(dāng)前名稱:關(guān)于jquery解析xml的信息
轉(zhuǎn)載源于:http://weahome.cn/article/dsdsjjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部