JQuery的。如何从xml中获取一个值?

时间:2014-12-16 04:01:53

标签: jquery xml

我有XML:

<note>
    <value>1</value>
    <value>2</value>
    <value>3</value>
</note>

写在jQuery上:

xml = "<note><value>1</value><value>2</value><value>3</value></note>";
xmlDoc = $.parseXML(xml);
$xml = $(xmlDoc);
$value = $xml.find("value");
alert($value.text());

输出:123

如何按队列输出1,2,3?

3 个答案:

答案 0 :(得分:1)

$value是一组value元素,因此.text()将返回集合中所有元素的组合文字。

由于您希望单独使用每个值,因此可以遍历元素集$value并处理值,如

&#13;
&#13;
var log = (function() {
  var $log = $('#log');
  return function(msg) {
    $('<p/>', {
      text: msg
    }).appendTo($log)
  }
})();


xml = "<note><value>1</value><value>2</value><value>3</value></note>";
xmlDoc = $.parseXML(xml);
$xml = $(xmlDoc);
$value = $xml.find("value");
$value = $xml.find("value");
$value.each(function() {
  log($(this).text());
  //alert($(this).text());
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="log"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试这样的事情

xml = "<note><value>1</value><value>2</value><value>3</value></note>";
xmlDoc = $.parseXML(xml);
$xml = $(xmlDoc);
$value = $xml.find("value");
len=$value.length;
$value.each(function(index ){
    if(index != len-1)
        console.log($(this).text()+',');
        else
            console.log($(this).text());

  });

这是小提琴 http://jsfiddle.net/mohamedmusthafac/ox2f383t/

答案 2 :(得分:0)

如果需要,您可以使用.map()方法获取所有值的数组,然后使用逗号分隔的字符串:

var xml = "<note><value>1</value><value>2</value><value>3</value></note>",
    xmlDoc = $.parseXML(xml),
    $xml = $(xmlDoc),
    $value = $xml.find("value"),
    values = $value.map(function(i,v) {
        return $(v).text();
    })
    .get()
    .join(', ');

$('.values').append( values );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="values"></div>'