Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery。递归地解析XML。怎么用?_Jquery_Xml - Fatal编程技术网

JQuery。递归地解析XML。怎么用?

JQuery。递归地解析XML。怎么用?,jquery,xml,Jquery,Xml,如何解析以下XML并通过索引获取值?下面的示例有效,但它一次返回所有值。如何在每个循环中访问每个单独的节点值?有没有办法按索引来做 <?xml version="1.0" encoding="utf-8"?> <!----> <GetAccount> <id>free2rhyme</id> <password>letmein</password> <name>jerry mcguire&l

如何解析以下XML并通过索引获取值?下面的示例有效,但它一次返回所有值。如何在每个循环中访问每个单独的节点值?有没有办法按索引来做

<?xml version="1.0" encoding="utf-8"?>
<!---->
<GetAccount>
  <id>free2rhyme</id>
  <password>letmein</password>
  <name>jerry mcguire</name>
  <age>29</age>
  <sex>m</sex>
  <location>salt lake city, utah</location>
  <language>english</language>
  <signup>00/00/0000</signup>
  <confirmed>y</confirmed>
  <status>a</status>
</GetAccount>


$.get('getAccount.xml', null, function (data) {

    var getAccount = $(data).find('GetAccount').each( function(){

    var value = $(this).text();
    alert(value);

    });
}, 'xml');

自由诗
莱特明
杰瑞·麦奎尔
29
M
犹他州盐湖城
英语
00/00/0000
Y
A.
$.get('getAccount.xml',null,函数(数据){
var getAccount=$(数据).find('getAccount').each(函数(){
var值=$(this.text();
警报(值);
});
}“xml”);

jQuery对待XML几乎和对待HTML一样。(处理XML文档时缺少
.html()
方法。)因此,要获取
节点的
子节点的内容,请执行以下操作:

var getAccount = $(data).find('GetAccount').each(function(){
    var value = $(this).find('id').text();
    alert(value);
}

这将通过所有元素“GetAccount”子元素及其值来实现:

$.get('getAccount.xml', null, function (data) {
    var getAccountID = $(data).find('GetAccount').each( function(){
      $('*', this).each(function(i,e){
        alert('index='+i+' name='+e.tagName+' value='+$(e).text())
      });
    });
}, 'xml');

var value=$(this.find('id').text();“id”是否可以替换为某种索引号?如果我直接访问这些值,基本上不需要Each循环,因为我只需要执行var value=$(this.find('GetAccount id').text()@只要您确定只有一个
GetAccount
id
,Vini就可以正常工作。否则,它将组合选择器匹配的每个节点的文本内容。@Vini jQuery支持伪选择器,包括,如果有帮助的话。。。不是XQuery的完全替代品,但是…@mblase75:如果我递归地需要它,那么最好的方法是什么?@Vini如果你需要一个循环,请使用我的答案中的内容。如果它实际上是递归的——这意味着在
节点中有
节点——那么XML构造函数就有问题了。这是一个很好的开始。非常感谢。