2014-12-16 2 views
1

У меня есть XML:JQuery. Как взять одно значение из 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 по очереди?

ответ

1

$value представляет собой набор элементов value, поэтому .text() вернет комбинированный текст всех элементов в комплекте.

Поскольку вы хотите иметь каждое значение по отдельности, вы можете перебрать элемента установить $value и обрабатывать значение как

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()); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="log"></div>

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/

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>'

Смежные вопросы