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 都不好使。 展开
<S20121201>a</S20121201>
<S20121203>b</S20121203>
<S20121210>c</S20121210>
</Response>
如要获得 S20121201 ,S20121203 ,S20121210 这3个 而不是取这3个节点里面的信息。
试过.tagName get(0).tagName 都不好使。 展开
4个回答
展开全部
<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 += " ";
}
//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> " );
})
//打印节点的文本
//$("#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. 也包括节点和属性。希望能有所帮助
展开全部
你好!!
不知道你是如何使用的···
试试下面的方法吧:
<script type="text/javascript">
$(function(){
$.get("demo.xml",function(data){
$.each($(data).find("Response").children(),function(){
alert( this.tagName );
});
},"xml");
});
</script>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
});
}
});
}
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);
});
}
});
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试nodeName
追问
$(xml).nodeName?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询