2013-11-24 23 views
0

我試着解析字符串,XML結構內部,jQuery.find()jQuery的發現失敗,特定節點的名字

xml = "<xml><nodes>....</nodes></xml>"; 
$(xml).find('some_node_name').each(function(){ 
// do something 
}); 

http://jsfiddle.net/nSfX7/9/

但是......

  1. 如果我用一個空格開始我的xml字符串,發現失敗。
  2. 如果一個節點的名稱爲「模板」發現不會找到這個節點內anythings ....

換句話說, 與該XML,jquery.find(「名稱」)失敗:

xml = "<xml> 
<template> 
    <node name='x'/> 
    <node name='y'/> 
</template> 
</xml>" 

,但如果我從模板更改節點的名稱模板templatee或者換句話說找到。不要把失敗...:

xml = "<xml> 
<templates> 
    <node name='x'/> 
    <node name='y'/> 
</templates> 
</xml>" 

有人有同樣的問題&可以幫助我或告訴我爲什麼jQuery有這種行爲?

韓國社交協會@所有

回答

1

看起來像HTML解析器原因造成的問題,但是爲什麼呢?不知道需要檢查的解析器DOC

既然你真的處理XML內容使用$ .parseXML()而不是使用HTML解析器像

var doc = $.parseXML(xml); 
$(doc).find('item').each(function() { 
    $('#out').append('found ITEM :' + $(this).attr('name') + "<br/>"); 
}); 

演示:Fiddle

+0

非常感謝! ! 1個簡單的行來解決我的問題;-) –