使用jQuery过滤XML结果

时间:2014-04-16 20:11:02

标签: jquery xml

长话短说我试图过滤我的XML代码只显示节点bprint =建立你的团队的bpcourses。以下是我的XML示例:

<bpcourse>
<course>
<![CDATA[Introduction to Building Your Team]]>
</course>
<delivery><![CDATA[Virtual Class]]></delivery>
<link>
<![CDATA[http://#]]>
</link>
<linkTitle>
<![CDATA[FGH567900]]>
</linkTitle>
<duration>
<![CDATA[1 hr 10 min]]>
</duration>
<bprint>
<![CDATA[Building Your Team]]>
</bprint>
</bpcourse>

以下是一段不断破解的代码:

var x=xmlDoc.getElementsByTagName("bpcourse");
for (i=0;i<x.length;i++)
{ 
var bprint = $(x).find("bprint").text();
if (bprint == "Building Your Team")
{

我知道我的XML是正确的,因为我可以使用我的代码的前三行查看所有XML数据。我只是不能弄清楚第3和第4行只显示bprint =建立你的团队。非常感谢任何帮助。谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

只有当bprint元素中的文本只包含文本"Building Your Team"时,才会执行JQuery的第4行,而不是元素包含其他文本。因此,正则表达式可能更符合您的要求。这是未经测试的,因此可能需要进行一些微调,但它应该适合您的需要。

var bprint = $(x).find("bprint").text();
if (bprint.indexOf("Building Your Team") >= 0) {
    // your code here
}

或者,您可以将正则表达式用于searchmatch字符串的bprint文本。

if (bprint.search('Building Your Team')) {
    // your code here
}

此外,关于遍历XML,如果您使用的是JQuery 1.5及更高版本,则可以使用$.parseXML()功能。以下是documentation的链接。