资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

jqueryxml的简单介绍

JQuery如何为XML对象添加节点

$(function() {

十余年的德兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整德兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“德兴网站设计”,“德兴网站推广”以来,每个客户项目都认真落实执行。

//定义一个xml对象

var x = $("xmlitemscenter //items/xml");

//在 center节点的结尾添加一个 bottom节点 ,然后在center节点的开头添加一个top节点

x.find("center").appendXml("bottom /").prependXml("top /");

//在 center节点的后面添加一个after节点,然后在center节点的前面添加一个before节点

x.find("center").afterXml("after /").beforeXml("before /");

alert(x.xml());

});

(function($) {

function mnpXml(opCode, xmlStr) {

return this.each(function() {

if (typeof xmlStr != "string") return;

if (!jQuery.isXMLDoc(this)) return;

var node = $.parseXml(xmlStr).firstChild.cloneNode(true);

switch (opCode) {

case "append":

this.appendChild(node);

break;

case "prepend":

if (this.childNodes.length  0)

this.insertBefore(node, this.firstChild);

else

this.appendChild(node);

break;

case "after":

if (this.nextSibling)

this.parentNode.insertBefore(node, this.nextSibling);

else

this.parentNode.appendChild(node);

break;

case "before":

this.parentNode.insertBefore(node, this);

break;

}

});

}

$.fn.extend({

appendXml: function(s) {

return mnpXml.call(this, "append", s);

},

prependXml: function(s) {

return mnpXml.call(this, "prepend", s);

},

afterXml: function(s) {

return mnpXml.call(this, "after", s);

},

beforeXml: function(s) {

return mnpXml.call(this, "before", s);

},

xml: function() {

var elem = this[0];

return elem.xml || (new XMLSerializer()).serializeToString(elem);

},

innerXml: function() {

var s = this.xml();

var i = s.indexOf(""), j = s.lastIndexOf("");

if (j  i)

return s.substring(i + 1, j);

else

return "";

}

});

$.extend(jQuery, {

parseXml: function(xmlStr) {

if (window.ActiveXObject) {

var xd = new ActiveXObject("Microsoft.XMLDOM");

xd.async = false;

xd.loadXML(xmlStr);

return xd;

}

else if (typeof DOMParser != "undefined") {

var xd = new DOMParser().parseFromString(xmlStr, "text/xml");

return xd;

}

else return null;

},

toXml: function(obj, nodeName, useAttr) {

var x = $($.parseXml("" + nodeName + " /"));

var n = x.find(":first");

for (var p in obj) {

if (useAttr)

n.attr(p, obj[p]);

else

n.appendXml("" + p + " /").find(p).text(obj[p]);

}

return x[0];

}

});

})(jQuery);

[img]

JQuery 读取XML文件失败

jquery的 text()仅能读取出xml中不含标签的文字部分。

而 html() 办法也绝对读不出xml中的标签。

现在给你两种解决办法:

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

将你需要读取的的xml代码块外面套一层html标签,比如div什么的,再给他加个ID,比如:

info

div id="xxx"

小牛情侣纸巾套,很可爱的一对小情侣哦!br /

赶快领回家吧!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文件中的文字和标签了。比如:

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

其中xml()括号里有两个参数0和1可以选。

0代表读取 info标签里面的内容

1代表读取 info标签以及标签里面的内容

这种办法,缺点暂时没发现。

好了,我写了那么多,分给我吧?

JQuery解析XML数据的几个简单实例

用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做。下面我们来总结几个使用JQuery解析XML的例子。

第一种方案:

script

type="text/javascript"

$(document).ready(function()

{

$.ajax({

url:

'',

dataType:

'xml',

success:

function(data){

//console.log(data);

$(data).find("channel").find("item").each(function(index,

ele)

{

var

titles

=

$(ele).find("title").text();

var

links

=

$(ele).find("link").text();

console.log(titles+'-----');

$("#noticecon").find('ol').append('lia

href="'+links+'"'+titles+'/a/li');

});

}

});

})

/script

div

id="noticecon"

ol

/ol

/div

第二种方案:

script

type="text/javascript"

$.get("",

function(data){

$(data).find('channel').find('item').each(function(index,

ele){

var

titles

=

$(ele).find('title').text();

var

links

=

$(ele).find('link').text();

$("#noticecon").find('ol').append('lia

href="'+links+'"'+titles+'/a/li');

})

});

/script

div

id="noticecon"

ol

/ol

/div

一般步骤如下:

1.

读取xml文件

$.get("xmlfile.xml",function(xml){

//xml即为可以读取使用的内容,具体读取见第2点

});

2.

读取xml内容

如果读取的xml是来于xml文件,这结合上面的那点,处理如下:

$.get("xmlfile.xml",function(xml){

$(xml).find("item").length;

});

如果读取的是xml字符串,则要注意一点,xml字符串的必然被"xml"和"/xml"包围才可以被解析

$("xmlrootitem/item/root/xml").find("item").length;

解析xml内容:

示例xml:

?xml

version="1.0"

encoding="utf-8"

?

fields

field

Name="Name1"

fieldnamedsname/fieldname

datatype字符/datatype

/field

field

Name="Name2"

fieldnamedstype/fieldname

datatype字符/datatype

/field

/fields

以下是解析示例代码:

$(xml).find("field").each(function()

{

var

field

=

$(this);

var

fName

=

field.attr("Name");//读取节点属性

var

dataType

=

field.find("datatype").text();//读取子节点的值

});

以上这篇JQuery解析XML数据的几个简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

jQuery加载xml失败

为什么要用绝对路径呢

改成相对路径就能通过,以后也好修改


当前标题:jqueryxml的简单介绍
文章URL:http://www.cdkjz.cn/article/dsohcis.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220