Jquery解析自定义xml

时间:2011-03-01 09:59:53

标签: jquery xml parsing

我有像

这样的xml
<contact>
    <name>
        <firstname>Ravindra</firstname>
    </name>
    <name>
        <firstname>Marya</firstname>
        <lastname>suthar</lastname>
    </name>
</contact>

当我申请查找功能时,“firstname”工作正常但最后一个鬃毛与第一个“名称”部分相关联。

我正在做某事

var MyName=$(xml).find("firstname").eq(0).text()+" "+$(xml).find("lastname").eq(0).text();

结果我得到了“Ravindra Suthar”但结果应该是“Ravindra”

请告诉我如何在没有“if else”的情况下实现这一目标。

3 个答案:

答案 0 :(得分:0)

你可以把它全部放在一个衬里,但为了清楚起见:

var $firstName=$(xml).find("firstname").eq(0);
var firstName = $firstName.text();
var lastName = $firstName.siblings("lastname").text();
var MyName = firstName +" "+lastName;

使用jquery的漂亮siblings方法,我们仅在我们之前找到的第一个名称的级别搜索姓氏。

啊,怎么了,一个班轮:

var MyName = $(xml).find("firstname").eq(0).text() +" "+$(xml).find("firstname").eq(0).siblings("lastname").text();

答案 1 :(得分:0)

eq()查找集合中第一个匹配的元素。所以你要查找所有的姓氏并获得集合中的第一个,这就是suthar。

你必须找到第一个'名字'然后选择第一个和最后一个名字:

$(xml).find('name:nth-child(1)>firstname').text() + " " + $(xml).find('name:nth-child(1)>lastname').text()

答案 2 :(得分:0)

$(xml).find("name").each(function () {     
var MyName = $(this).find("firstname").text() + " " + $(this).find("lastname").text();
     alert(MyName);
});

首次提醒 - &gt;拉温德拉

第二次提醒 - &gt;玛丽亚苏塔尔