2012-04-24 95 views
1

我試圖使用reddit的reddit XML feed,但我遇到了使用JavaScript解析它的問題。使用jQuery解析Reddit XML問題

我有了這個代碼

function parseXml(xml) { 
    var xmlResult = ""; 
    $(xml).find("item").each(function() { 
     xmlResult = xmlResult + ($(this).find("title").text()) + "<br />"; 
    }); 
    document.write(xmlResult); 
} 

但問題是,它複製了冠軍。

在Reddit XML feed中,有title和media:title標籤。我如何解決這個重複問題。

例如:標題是「真的真棒標題的職位」,並在我的輸出中,我得到「真正真棒標題postReally真棒標題的職位」。

+0

你可以添加一個鏈接到你試圖解析的XML feed嗎? – 2012-04-24 09:51:44

+0

@PierreSpring在這裏你去:http://www.reddit.com/r/mylittlepony/new/.rss – ixchi 2012-04-24 09:52:46

+0

你的代碼看起來可疑類似於jQuery。如果你使用的是框架或庫,你通常不需要編寫自己的XML解析器。如果你不使用任何這些,你應該發佈你的函數的代碼。 – 2012-04-24 09:55:03

回答

0

的問題是,<item>元素包含相同的值命名爲<title>兩個元素:

<item> 
    <title>Really awesome title of post</title> 
    ... 
    <media:title>Really awesome title of post</media:title> 
    ... 
</item> 

當您使用title選擇,jQuery的返回他們與符連接在一起,它們的文本。

一種解決方法是挑選出的第一個元素:

$(this).find("title").first().text() 

由於元素包含相同的值反正也無所謂你是哪一個。