比方说,我有以下XML文档,我需要使用jQuery解析它。使用jQuery解析XML文档,是否有效的方法
<books>
<book>
<title>Gone with the Wind!</title>
</book
<book>
<title>Lord of the Rings</title>
</book>
<book>
<title>4 hour work week</title>
</book
</books>
为了获得第一本书的“标题”。我可以使用下面的jQuery函数。
// let's assume xmldoc contains the above document.
$(xmldoc).find("title").first().text();
这会给我“标题”的第一本书,即的“乱世佳人”!。现在,我的问题在于:这是获得第一本书的“标题”的有效方法吗?
恐怕,内部jQuery可能会解析所有书籍的标题,然后返回第一个()。我想知道,如果我在解析我不感兴趣的书籍时浪费CPU周期?
如果您能想到任何问题,请提出替代方案。提前致谢!
PS:请注意,我无法使用浏览器的原生JavaScript API,因为项目的其余部分已经使用jQuery进行XML解析。
我会假设jQuery会使用浏览器的xml解析api(如果可用)。为什么不检查jQuery源代码? – 2012-04-09 21:04:26
@VincentMcNabb,谢谢。您的评论让我着眼于jQuery源代码。我一直认为,我无法阅读和理解jQuery :)。诚然,如果可用,jQuery确实使用浏览器的本地功能。我已经设置了一个断点和步骤来发现jQuery调用Sizzle.find()。 Sizzle.find()反过来使用浏览器的getElementsByTagName()。所以,它确实获得了整个名称集合并以Array的形式返回。 first()调用只是返回该数组中的第一个元素。 – Karthik 2012-04-09 21:56:33
不用担心:-)顺便说一句,jQuery不是由神奇的神(我曾经对很多事情感觉如此),但是由于它的大小,刚开始时需要很长的时间也是jQuery对象的构造方式。其实我觉得有点混乱。但通常情况下,一旦你认识到它太大的事实,你应该能够搜索你所调用的函数,理解这个函数,然后看看理解那些依次调用的函数。等等。 – 2012-04-10 05:48:56