jQuery XML解析跳过数据元素/节点

时间:2019-05-14 09:35:41

标签: javascript jquery xml

我正在使用jquery显示来自XML的一些数据,但是我希望它跳过某些元素/节点,并从其他位置而不是起点开始,这是否可能?这是我在下面使用的代码。

var xml = "<alldata><data><datatext>data one</datatext></data><data><datatext>data two</datatext></data><data><datatext>data three</datatext></data><data><datatext>data four</datatext></data><data><datatext>data five</datatext></data></alldata>";
var $xml = $($.parseXML( xml ));

var datatext = $xml.find("data");

datatext.each(function(){
$('body').append($(this).find('datatext').text()+'<br>');
});

那会产生

data one
data two
data three
data four
data five

但是我想跳过前3个,所以只会产生

data four
data five

2 个答案:

答案 0 :(得分:0)

您可以添加类似datatext = datatext.slice(3);

的内容

它将为您提供data fourdata five

演示

var xml = "<alldata><data><datatext>data one</datatext></data><data><datatext>data two</datatext></data><data><datatext>data three</datatext></data><data><datatext>data four</datatext></data><data><datatext>data five</datatext></data></alldata>";
var $xml = $($.parseXML(xml));

var datatext = $xml.find("data");
datatext = datatext.slice(3);
datatext.each(function() {
  $('body').append($(this).find('datatext').text() + '<br>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

答案 1 :(得分:0)

要跳过前三个data节点,可以在循环之前在slice()对象上调用datatext

var xml = "<alldata><data><datatext>data one</datatext></data><data><datatext>data two</datatext></data><data><datatext>data three</datatext></data><data><datatext>data four</datatext></data><data><datatext>data five</datatext></data></alldata>";
var $xml = $($.parseXML(xml));
var $datatext = $xml.find("data");

$datatext.slice(3).each(function() {
  $('body').append($(this).find('datatext').text() + '<br>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>