0

我正在使用 $.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(),比如我可以使用它的对象、属性等的其他方法。我们在某处列出了类似的东西吗?

4

1 回答 1

1

我认为您可以混合使用.has().find()

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

演示:小提琴

于 2014-08-26T09:09:05.563 回答