jquery 如何获得xml中每个节点的名字

<Response><S20121201>a</S20121201><S20121203>b</S20121203><S20121210>c</S20121210></R... <Response>
<S20121201>a</S20121201>
<S20121203>b</S20121203>
<S20121210>c</S20121210>
</Response>
如要获得 S20121201 ,S20121203 ,S20121210 这3个 而不是取这3个节点里面的信息。
试过.tagName get(0).tagName 都不好使。
展开
 我来答
哈哈女神笑哈哈
2015-09-07 · TA获得超过852个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:39.1万
展开全部
<script type="text/javascript" src="js/jquery.min.js"></script>
<div id="c"></div>
<script>
//用于缩进, 根据节点级别
var M_DOT = 1;

//递归函数, 用于遍历XML,  同时打印出来
function fn(obj){
    
    //定义一个变量, 用于缩进
    var dotString = ""; 
    //根据缩进量, 得到缩进的长度
    for(j = 1; j <= M_DOT; j++){
        dotString += "&nbsp;&nbsp;&nbsp;&nbsp;";
    }
    
    //jquery不支持attributes属性集, 转为原生js, 并赋给myObj变量
    var myObj = obj[0].attributes;
    
    //打印缩进
    $("#c").append(dotString)
    
    //打印属性集nodeName, nodeValue为原生JS, 分别表示为属性的名称, 和属性值
    $(myObj).each(function(i){        
        $("#c").append( ($(this)[0].nodeName) + "=<u>" + ($(this)[0].nodeValue) + "</u>&nbsp;" ); 
    })
    
    //打印节点的文本
    //$("#c").append( "<b>" + obj.text() + "</b><br/>"); 
    
    //打印换行
    $("#c").append( "<br/>");

    //判断DOM有无子DOM
    if( obj.length > 0 ){
        //如果有, 遍历之
        obj.children().each(function(i){
            //缩进量加一
            M_DOT++;
            
            //递归遍历子DOM
            fn($(this));
            
            //缩进量加一
            M_DOT--;
        })
        
    }else{
        //如果没有子DOM, 返回false
        return false;
    }
    
}

//程序入口
$(document).ready(function() { 
    
    //ajax获取xml数据, 详细用法见jquery手册
    $.get('config.xml', function(d){ 
        
        //len = $(d).find("*").length;
        
        //找到xml顶级结点.  ('*:first'):就是查找第一个DOM. 详细说明见jquery手册
        //find, children(), each, 以及后面用到的 append 等请查阅jquery手册
        $(d).find('*:first').children().each(function(i){ 
            //找到顶级结点的子结点, 并把子结点对象传给fn函数
            fn($(this));
        });
        
        
    });
    
});
</script>


这是 jquery 遍历Xml. 也包括节点和属性。希望能有所帮助

阿刚炖蛋
2013-11-06 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:1000万
展开全部

你好!!


不知道你是如何使用的···

试试下面的方法吧:

<script type="text/javascript">
$(function(){
$.get("demo.xml",function(data){
$.each($(data).find("Response").children(),function(){
alert( this.tagName );
});
},"xml");
});
</script>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
放飞新的人生
2015-08-15 · TA获得超过1707个赞
知道小有建树答主
回答量:405
采纳率:64%
帮助的人:218万
展开全部
jquery获取XML节点名称的几种方法:

get(0).tagName

$(this).get(0).tagName

[0].tagName[0]

$(this)[0].tagName

context.nodeName

$(this).context.nodeName

function getXMLData(){
$.ajax({
url:'data.xml',
type: 'GET',
dataType: 'xml',
timeout: 1000,
error: function(xml){
alert('Error loading XML document'+xml);
},
success: function(xml){
$("data",xml).children().each(function(){
alert($(this).context.nodeName);
});
}
});
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoapk
2013-11-05 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1614万
展开全部
试试nodeName
追问
$(xml).nodeName?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式