$ .parseXML()的find()方法 - 多次使用它

时间:2014-08-26 09:07:23

标签: jquery xml parsexml

我正在使用$ .parseXML()API解析XML字符串。以下是我使用的代码:

success:function(data)
{
    $(data).find('TabName:contains("Current Year Forms")').each(function(){
             $(this).parent().find('IndexEntry:contains("A")').each(function(){
                 console.log($(this).text());
             });
    });
}

这工作正常,但我想知道我是否可以以某种方式减少代码行。我试图提出条件TabName="Current Year" AND IndexEntry="A"。那就像是:

$(data).find('TabName:contains("Current Year Forms")').find('IndexEntry:contains("A")')

将条件置于单一陈述中?

更新

我确实达到了能够使用

的程度
$(data).find('TabName:contains("Current Year Forms")', IndexEntry:contains("A")')

但是只使用了OR条件而不是AND。这使我假设AND条件必须有另一种语法。

XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data-set xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <record>
        <Account>
            <NOR>34</NOR>               
            <TabName> Current Year Forms</TabName>              
            <IndexEntry>A</IndexEntry>
        </Account>
        <Account>
            <NOR>22</NOR>
            <TabName> Current Year Forms</TabName>
            <IndexEntry>C</IndexEntry>
        </Account>
        <Account>
            <NOR>40</NOR>               
            <TabName>Current Year Forms</TabName>
            <IndexEntry>C</IndexEntry>
        </Account>
     </record>
</dataset>
PS:在旁注中,我似乎无法找到关于parseXML()的详细文档,就像我可以使用的其他方法一样,它的对象,属性等。我们有类似的东西吗?某处?

1 个答案:

答案 0 :(得分:1)

我认为你可以混合使用.has()&amp; .find()

$(data).find('Account').has('TabName:contains("Current Year Forms")').find('IndexEntry:contains("A")').each(function () {
    console.log($(this).text());
});

演示:Fiddle