2013-11-21 48 views
0

編碼XML節點我解析與Backbone.js的和jQuery一個WordPress博客XML飼料。一個XML項目如下:找不到可以通過jQuery的

<item> 
    <title>The Title</title> 

    <link> 
    http://domain.ie/blog/2013/11/18/fashion-show/ 
    </link> 

    <comments> 
    http://domain.ie/blog/2013/11/18/fashion-show/#comments 
    </comments> 

    <pubDate>Mon, 18 Nov 2013 20:28:02 +0000</pubDate> 

    <description> 
    <![CDATA[ 
    some description 
    ]]> 
    </description> 

    <content:encoded> 
    <![CDATA[ 
    the content 
    ]]> 
    </content:encoded> 

</item> 

在這個模型中,我有:

$(xml).find('item').each(function (index) { 

    console.log('item children are '); 
    console.log($(this).children()); 

    content = $(this).find('content\\:encoded').text(); 

    console.log('content.length is '); 
    console.log(content.length); 

    title = $(this).find('title').text(); 

    description = $(this).find('description').text(); 

    console.log('descriptions is '); 
    console.log(description); 

    pubDate = $(this).find('pubDate').text();     

    parsed.push({id:id, title: title, 
        description:description, content:content, pubDate:pubDate}); 
    id++; 
    }); 

    return parsed; 
}, 

然而, 「內容:編碼」 是從來沒有發現。當我查看控制檯的輸出時,我可以看到列爲兒童的「content:encoded」。爲什麼jquery不能找到它?

編輯: 關於轉義冒號stil下面的答案不能解決我的問題。我在我的服務器上設置了一個演示(Jsfiddle不會在這裏工作,因爲會有跨域問題)。鏈接是here。 rss feed是here。正如將看到的,儘管轉義冒號,內容:編碼從未被發現。如果你看看控制檯的輸出,你會看到描述被發現,但內容長度不是,並且總是長度爲0.它是什麼?

+0

您可能必須轉義冒號':' – Krishna

回答

0

你需要逃避:\:

content = $(this).find('content\\:encoded').text(); 
+0

這必須是t他正確回答,但令人難以置信的是,它仍然沒有發現任何東西。我將不得不建立一個jsfiddle – user1716672

0

試試這個,你只是錯過了escapemeta character這實際上是在你的情況下,標籤名,

content = $(this).find('content\\:encoded').text(); 

DEMO

使用任何一個Ë元字符(如 !「#$%&「()* +,。/ :; < => @ [] ^`{|}〜)作爲名稱的文本部分,就必須 轉義與兩個反斜槓?:\。例如,對於 ID = 「foo.bar」 元件時,可以使用選擇器$( 「#FOO \的.bar」)。在W3C CSS 規範包含一套完整的關於有效的CSS 選擇規則。

參考:selectors

+0

這應該工作,但不知何故,它不。什麼都沒有發現 – user1716672

+0

@ user1716672你可以在這裏看到選擇器的問題。 http://jsfiddle.net/D3eqm/1/ –

+0

我知道,它應該對我的工作,但不知何故,不知何故,它沒有。我將不得不設置演示 – user1716672

2

看來,WebKit的瀏覽器,以查找包含一個冒號標籤,你需要使用什麼冒號作爲一個選擇後:

content = $(this).find('encoded').text(); 

逃離冒號在Firefox上運行:

content = $(this).find('content\\:encoded').text(); 
相關問題