我有一个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”?
换句话说,如何根据标题标签的内容选择值?
答案 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();
如果检查“对话文本”可以是“包含”匹配而不是完全匹配,则可以使其更加整洁:
var x = $.parseXML("<n>" + xmlString + "</n>");
var selector = "field:has(title:contains('Dialogue Text')) value";
var text = $(x).find(selector).text();
答案 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 强>