比方說,我有以下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