gpt4 book ai didi

javascript - jquery中如何将字符串转换为xml对象

转载 作者:行者123 更新时间:2023-12-01 00:01:17 24 4
gpt4 key购买 nike

我查看了Convert String to XML Document in JavaScript但我在我的情况下找不到解决方案,有人可以在我的情况下帮助我。

我有一个如下所示的字符串,我想将其转换为 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>

上述 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>

已更新,这是我尝试过的。

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>');
}
}
});

我正在添加htmlTable稍后在代码中'<div class="block">'+htmlTable+'</div>'

我根本不提醒

最佳答案

虽然它可能是重复的 Convert String to XML Document in JavaScript - 我们可以使用 jquery decode html entities 的一些帮助

我做了一个fiddle

// 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>');

更新这是更正确的:

http://jsfiddle.net/mplungjan/ppj3nquL/

var xmlString = '<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>';
var xmlDocument = $.parseXML(xmlString);
var $xml = $(xmlDocument);


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

$xml.find('Response').each(function() {
var cid = $(this).find('cfgId').text();
if (cid == cfgid) {
// Now grab the entitiy string
var newXmlString = $(this).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>');
}
}
});
$("#container").append(htmlTable);
td {
border: 1px solid black
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container"></div>

关于javascript - jquery中如何将字符串转换为xml对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6502212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com