Javascript 如何在jquery中将字符串转换为xml对象

Javascript 如何在jquery中将字符串转换为xml对象,javascript,jquery,Javascript,Jquery,我看了一下,但在我的情况下我找不到解决办法,有人能帮我吗 我有一个如下的字符串,我想把它转换成一个XML对象,我该怎么做 <list> <Response> <cfgId>280</cfgId> <recommendations>&lt;Rule&gt; &lt;name&gt;simple rule&lt;/name&gt; &lt;category&gt;none&am

我看了一下,但在我的情况下我找不到解决办法,有人能帮我吗

我有一个如下的字符串,我想把它转换成一个XML对象,我该怎么做

<list>
<Response>
<cfgId>280</cfgId>
<recommendations>&lt;Rule&gt;
&lt;name&gt;simple rule&lt;/name&gt;
&lt;category&gt;none&lt;/category&gt;
&lt;severity&gt;warning&lt;/severity&gt;
&lt;ruleEvalResult&gt;true&lt;/ruleEvalResult&gt;
&lt;actionResult&gt; Current value of maxfilesperproc is  32
increase it to 1024&lt;/actionResult&gt;
&lt;/Rule&gt;</recommendations>
</Response>
</list>

280
统治
名称简单规则/名称
类别炔酮
严重警告/严重性
ruleEvalResulttrue/ruleEvalResult
actionResult maxfilesperproc的当前值为32
将其增加到1024/actionResult
/统治
上述xml的可读版本

<list>

<Response>
<cfgId>280</cfgId>

<recommendations>
<Rule> <name>simple rule</name> <category>none</category> <severity>warning</severity>     <ruleEvalResult>true</ruleEvalResult> <actionResult>Current value of maxfilesperproc is  32
increase it to 1024</actionResult> </Rule>

</recommendations>

</Response>
</list>

280
简单规则无警告maxfilesperproc的真实当前值为32
增加到1024
更新,以下是我尝试的内容。

var xml;
$.post("/csm/rules.action",
  { sessiontoken:   sessiontoken,
    cfgid:          cfgid},
      function(xmldata)
      {

            xml=$(xmldata);


      }
);
var htmlTable = $('<table></table>');

$(xml).find('Response').each(function(){
  var cid = $(this).find('cfgId').text();
  alert(cid+", "+cfgid);
  if(cid==cfgid) {   

    // Now grab the entitiy string
    var newXmlString = $(xml).find('recommendations').text(); 
    // Convert the entities to HTML and return a jQuery object
    var newXml = $("<div/>").html(newXmlString);

    // NOW we can get at the inner XML
    var ruleseverity=$(newXml).find('severity').text();
    if(ruleseverity=="warning")  {
      var rulename=$(newXml).find('name').text();
      var rulecategory=$(newXml).find('category').text();
      var ruleresult=$(newXml).find('ruleEvalResult').text();
      var ruleactionresult=$(newXml).find('actionResult').text();
        htmlTable.append('<tr><td>RuleName:'+rulename+'</td><td>RuleResult: '+ruleactionresult+'</td></tr>');
    }           
  }
});
var-xml;
$.post(“/csm/rules.action”,
{sessiontoken:sessiontoken,
cfgid:cfgid},
函数(xmldata)
{
xml=$(xmldata);
}
);
var htmlTable=$('');
$(xml).find('Response').each(function(){
var cid=$(this.find('cfgId').text();
警报(cid+,“+cfgid);
如果(cid==cfgid){
//现在抓住整个字符串
var newXmlString=$(xml).find('recommendations').text();
//将实体转换为HTML并返回jQuery对象
var newXml=$(“”).html(newXmlString);
//现在我们可以了解内部XML
var ruleseverity=$(newXml).find('severity').text();
如果(规则严重性=“警告”){
var rulename=$(newXml).find('name').text();
var rulecategory=$(newXml).find('category').text();
var ruleresult=$(newXml).find('ruleEvalResult').text();
var ruleactionresult=$(newXml).find('actionResult').text();
htmlTable.append('RuleName:'+RuleName+'RuleResult:'+ruleactionresult+'');
}           
}
});
我在后面的代码
'+htmlTable+'
中添加
htmlTable


我根本不使用警报来解析xml,尽管它可能是 -我们需要你的帮助

我犯了一个错误



我可以知道您想将字符串转换为xml@nitinJS:我想对其进行分析,查看是否
严重性==“warning”
或其他检查可能重复-只需提取字符串,转换<和>,并将其转储到jQuery中object@Vivek:我想将
分别转换为
,这样它就变成了xml对象,我可以在您编写时解析它
,它只会提醒280、280`,那么根据您的指示,它应该提醒什么呢?我尝试了这个
$.parseXML(xml)
也许我可以用相应的
替换所有的
,然后它可能会工作。你的JSFIDLE链接是什么?@mplungjan:谢谢,我也碰巧找到了另一个解决方案,这里是我的look@Abhishek:请参阅更新。在我看来,使用更一致的html完成处理processing@mplungjan:我试过了,但没有效果。。你能看看我最新的问题吗?谢谢为什么不用我的方法?看看代码,我从实体字符串中获取新XML。您必须首先转换外部XML,然后转换内部XML
// the $() creates a jQuery object of the outer XML
var xml = $('<list><Response><cfgId>280</cfgId><recommendations>&lt;Rule&gt;&lt;name&gt;simple rule&lt;/name&gt;&lt;category&gt;none&lt;/category&gt;&lt;severity&gt;warning&lt;/severity&gt;&lt;ruleEvalResult&gt;true&lt;/ruleEvalResult&gt;&lt;actionResult&gt; Current value of maxfilesperproc is  32 increase it to 1024&lt;/actionResult&gt;&lt;/Rule&gt;</recommendations></Response></list>');