如何使用jquery删除重复的xml备注内容

时间:2014-12-10 12:56:41

标签: jquery jqxgrid

我正在尝试使用jquery删除重复的xml注释,可以帮助吗?

我的xml:

<Accounts>
  <Account>
    <Company>Company 1</Company>
    <AccountNo>12345</AccountNo>
    <CCY>EUR</CCY>
    <Link>Link</Link>
    <StatusIMG>Approved</StatusIMG>
  </Account>
  <Account>
    <Company>Company 1</Company>
    <AccountNo>12345</AccountNo>
    <CCY>EUR</CCY>
    <Link>Link</Link>
    <StatusIMG>Approved</StatusIMG>
  </Account>
  <Account>
    <Company>Company 1</Company>
    <AccountNo>12345</AccountNo>
    <CCY>EUR</CCY>
    <Link>Link</Link>
    <StatusIMG>Approved</StatusIMG>
  </Account>
</Accounts>

JS:

$(document).ready(function () {

var LatestAccounturl = "scripts/jqwidgets/sampledata/latestAccountUpdates.xml";

var LatestAccountsource =
{
    datatype: "xml",
    mtype: 'GET',
    datafields: [
        { name: 'Company', type: 'String'},
        { name: 'AccountNo', type: 'int' },
        { name: 'CCY', type: 'String' },
        { name: 'Link', type: 'bool' },
        { name: 'StatusIMG', type: 'String' }
    ],      
    root: "Accounts",
    record: "Account",
    url: LatestAccounturl       
};


var xml = $(xml);
$('Accounts > Company', xml).each(function() {
    alert($(this).text());
});

});

我想检查<company>节点是否具有相同的值(重复),然后我需要删除重复的项目,为此第一步我试图获取xml节点文本值,这是不行的在我的警报:(任何解决方案或更好的方法?

1 个答案:

答案 0 :(得分:0)

问题是选择:Accounts > Company尝试选择直接子项,但在xml中,公司不是Accounts的直接子项。

正确的是

$('Accounts Company', xml).each(function() {
    alert($(this).text());
});

没有>

$('Accounts > Account', xml).each(function() {
    alert($(this).find("Company").text());
});

这将是优先方法,因为this将保留完整帐户....现在您可以检查已存在的公司并使用$(this).remove()删除节点,以防它已经本。