使用jQuery使用嵌套结构解析xml文件

时间:2014-08-11 20:31:13

标签: jquery xml

我有一个xml文件,其结构如下:

<field>
    <title>Wrong</title>
    <value>Don't want this</value>
</field>
<field>
    <title>Dialogue Text</title>
    <value>The gold is here</value>
</field>

如何使用jQuery获取value-tag中的文本,但前提是它上面的title-tag内的文本是“Dialogue Text”?

换句话说,如何根据标题标签的内容选择值?

2 个答案:

答案 0 :(得分:0)

可能有一种更优雅的方式来做到这一点,但这将有效:

var x = $.parseXML("<n>" + xmlString + "</n>");

var text = $(x).find("field")
               .filter(function() { 
                    return $(this).children("title").text() ===
                         "Dialogue Text"
               })
               .children("value")
               .text();                         

http://jsfiddle.net/zcm1778w/

如果检查“对话文本”可以是“包含”匹配而不是完全匹配,则可以使其更加整洁:

var x = $.parseXML("<n>" + xmlString + "</n>");

var selector = "field:has(title:contains('Dialogue Text')) value";
var text = $(x).find(selector).text();                         

http://jsfiddle.net/zcm1778w/2/

答案 1 :(得分:0)

如果您正在寻找的是有效的集合,您可以执行以下操作:

var validValues=$(xml).find('title').filter( function(){
    return $(this).text() === 'Dialogue Text';
}).siblings('value');

/* now do something with the collection of value tags */

DEMO