jQuery调用XML数据【使用传统JavaScript调用XML的方法】(jQuery调用JSON数据学习第五天)

       作为一种理想的数据交互语言,XML与JSON有太多的相似之处,在编码的可读性和解码难度上,XML都优于JSON,只是在处理复合的JavaScript对象时不及JSON。

       在表现形式上,XML采用的是标准的标签,因此,如果需要完整地解析一个XML格式的数据,有两种方式:一种方式是通过DOM文档模型进行解析,另外一种方式是遍历各个标签的节点(如childNodes等)。本节将逐步介绍在jQuery中如何解析,遍历,操作XML数据的详细过程。

使用传统JavaScript调用XML的方法

       在介绍使用jQuery调用XML数据之前,我们先来看看在传统的JavaScript代码中,是如何借助XMLHttpRequest对象,打开并读取一个XML格式数据的。

(1)功能描述

       在页面中,用户单击"获取数据"按钮后,将利用传统的JavaScript代码,打开一个指定的XML文件并读取该文件中的内容,最后显示在页面中。

(2)实现代码

      主体代码:

<style type="text/css">
    body{font-size:13px}
    .iframe{width:260px;border:solid 1px #666}
    .iframe .title{padding:5px;background-color:#eee}
    .iframe .content{padding:8px;font-size:12px}
    .btn{border:#666 1px solid;padding:2px;width:80px;
    filter:progid:DXImageTransform.Microsoft
    .Gradient(GradientType=0;StartColorStr=#ffffff,
    EndColorStr=#ECE9D8);}     
</style>
<script type="text/javascript">
    //加载XML文件
    function loadXML(xmlFile) {
        var xmlDoc xmlhttp;
        //兼容IE 7+,Firefox,Chrome,Opera,Safari
        if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
        }
        else {//兼容 IE 5,IE 6
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET",xmlFile,false);
        xmlhttp.send();
        xmlDoc = xmlhttp.responseXML;
        return xmlDoc;
    }
    function btn_Click() {    //按钮单击事件
        var strHTML = "";     //初始化保存内容
        var NewXmlDoc = loadXML("Xml/7-4.xml");
        strHTML += "姓名:" + NewTmpTag[0]
                    .getElementsByTagName("name")[0]
                    .firstChild.nodeValue + "<br>";
        strHTML += "性别:" + NewTmpTag[0]
                    .getElementsByTagName("sex")[0]
                    .firstChild.nodeValue + "<br>";
        strHTML += "邮箱:" + NewTmpTag[0]
                    .getElementsByTagName("email")[0]
                    .firstChild.nodeValue + "<br>";
        //显示处理后的数据
        document.getElementById("Tip").innerHTML = strHTML;
    }
</script>

<div class="iframe">
    <div class="title">
        <input type="button" onclick="btn_Click()" class="btn" value="获取数据" />
    </div>
    <div class="content">
        <div id="Tip"></div>
    </div>
</div>

           xml代码:

<?xml version="1.0" encoding="utf-8" ?>
<Info>
    <User>
        <name>tgr</name>
        <sex>男</sex>
        <email>tao_guo_rong@163.com</email>
    </User>
</Info>

(3)代码分析

       在例子中为了获取xml文件中的内容,首先要定义一个loadXML(f)函数,其形参“f”为调用XML文件的路径。在该函数中,先根据不同浏览器取得XMLHttpRequest对象,并将该对象并保存至xmlhttp变量中,然后将传来的实参“f”值作为参数调用该对象的open()方法,最后调用该对象的send()方法获取XML文件读取成功后的数据对象,并作为函数的返回值传递给调用函数。

       在用户单击按钮时,为了将获取后的XML数据显示在页面中,自定义一个btn_Click()函数。在该函数中,先调用loadXML(f)函数,并将函数返回的数据对象保存至变量NewXmlDoc中;然后,调用getElementByTagName()方法获取数据对象中的各个标签,使用“firstChild.nodeValue”形式获取各标签下对应的值;最后,将获取的各标签值以叠加的形式保存至变量,通过指定元素将变量的内容显示在页面中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jQuery 提供了一个方法 `$.parseXML()`,用于将字符串形式的 XML 解析成 XML Document 对象。这样就可以使用 jQuery 的 DOM 操作方法来遍历解析出来的 XML 了。 举个例子: ``` $.ajax({ type: "GET", url: "data.xml", dataType: "xml", success: function(xml) { // 将 XML 解析为 XML Document 对象 var xmlDoc = $.parseXML(xml), $xml = $(xmlDoc); // 使用 jQuery 的 DOM 操作方法来遍历解析出来的 XML $xml.find("item").each(function() { var $this = $(this), item = {}; item.title = $this.find("title").text(); item.description = $this.find("description").text(); // 将解析出来的数据存入数组 items.push(item); }); } }); ``` 然后,就可以使用 `JSON.stringify()` 将遍历出来的数据转为 JSON 字符串了。 举个例子: ``` var jsonString = JSON.stringify(items); ``` 最后,就可以使用 `JSON.parse()` 将 JSON 字符串转为 JSON 对象了。 举个例子: ``` var items = JSON.parse(jsonString); ``` 这样就完成了将 XML 数据转为 JSON 数据的过程。 ### 回答2: 使用jQuery可以将XML数据转换为JSON数据。首先,我们需要获取XML数据并将其加载到一个变量中,然后使用jQuery方法将其转换为JSON格式。以下是一个示例代码: ```javascript // 获取XML数据 var xmlData = '<root><name>John Doe</name><age>25</age><city>New York</city></root>'; // 将XML数据转换为JSON格式 var jsonData = $.xml2json(xmlData); // 输出转换后的JSON数据 console.log(jsonData); ``` 上述代码中,我们使用了一个虚拟的XML数据,你需要将其替换为实际的XML数据。然后,通过调用`$.xml2json`方法XML数据转换为JSON格式,并将结果保存在`jsonData`变量中。最后,我们使用`console.log`方法输出转换后的JSON数据。 需要注意的是,jQuery本身不提供将XML转换为JSON的功能,我们可以使用第三方库`jquery.xml2json`来实现这个功能。你可以在引入`jquery.xml2json`插件后使用`$.xml2json`方法来实现XMLJSON的功能。 最后,值得一提的是,使用jQueryXML转换为JSON的功能并不是一种常见的需求,因为XMLJSON具有不同的数据结构和用途。如果可能的话,推荐直接使用JSON格式数据,以避免进行额外的转换过程。 ### 回答3: 使用jQuery可以很方便地将XML数据转换为JSON数据。 首先,需要用`$.ajax`方法来读取XML文件。其中,`dataType`属性设置为`xml`,表示读取的数据XML格式。 然后,在`success`回调函数中,可以使用`$.parseXML`方法来解析XML数据,将其转换为一个DOM对象。 接下来,可以使用jQuery的选择器来获取XML中的各个节点,并将其转换为JSON格式。例如,可以使用`$(domObject).find`方法来获取XML中的节点,再使用`.each`方法遍历节点。 在遍历每个节点时,可以使用`node.nodeName`获取节点名称,`node.textContent`获取节点的文本内容,并将其组织成一个JSON对象。 最后,可以使用`JSON.stringify`方法JSON对象转换为JSON字符串,并将其输出。 以下是一个示例代码: ```javascript $.ajax({ url: "data.xml", dataType: "xml", success: function(xml) { var json = []; $(xml).find('node').each(function() { var node = {}; node.name = $(this).attr('name'); node.content = $(this).text(); json.push(node); }); var jsonString = JSON.stringify(json); console.log(jsonString); } }); ``` 以上代码假设要转换的XML路径为"data.xml",XML中的节点名称为"node",节点属性名为"name",节点内容为文本。 使用这段代码,XML数据将会被转换为JSON数据,并输出到控制台中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值