jQuery Xml解析这里有什么问题?

时间:2011-06-22 11:18:57

标签: jquery

我有这个代码,我想遍历所有com.abc.db.ConfigInfo行,如果其中任何一行包含cfgId 141警报(cfgName)

更新

alert(xml);
                        $(xml).find('list com\\.abc\\.db\\.ConfigInfo').each(function()
                        {
                            alert("enter the dragon");
                            if($(this).find('cfgId').text()=="141")  
                            alert($(this).find('cfgName').text()); 
                        }); 

我的XML

<list>
<com.abc.db.ConfigInfo>
<cfgId>83</cfgId>
<cfgName>test</cfgName>
</com.abc.db.ConfigInfo>
<com.abc.db.ConfigInfo>
<cfgId>102</cfgId>
<cfgName>cfgname1</cfgName>
</com.abc.db.ConfigInfo>
    </list>

3 个答案:

答案 0 :(得分:0)

开始从根节点遍历..

newXml = $.parseXML(xml)// parse your xml
$(newXml).find('list com.abc.db.ConfigInfo').each(function(){                            
if($(this).find('cfgId').text()=="141")                             
alert($(this).find('cfgName').text());                        
 }); 

答案 1 :(得分:0)

您的代码对我来说正确。但是在您的xml示例中,您没有cfgId作为141。这是你没有得到任何警报的一个很好的理由......

答案 2 :(得分:0)

Sizzle(jQuery用于.find及其朋友的库)会将您的"com.abc.db.ConfigInfo"解释为“com个节点abcdb和{ {1}}”。

你可以尝试逃避点的工作(ConfigInfo,双反斜杠,因为这些是JS字符串,你需要转义反斜杠),但如果可能的话,我建议你选择没有点的标签名称。下划线应该更好。