我有这个代码,我想遍历所有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>
答案 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
个节点abc
,db
和{ {1}}”。
你可以尝试逃避点的工作(ConfigInfo
,双反斜杠,因为这些是JS字符串,你需要转义反斜杠),但如果可能的话,我建议你选择没有点的标签名称。下划线应该更好。