gpt4 book ai didi

javascript - 如何从客户端的 xml 响应中替换 < 和 >

转载 作者:行者123 更新时间:2023-11-30 09:03:02 25 4
gpt4 key购买 nike

我有一个来自服务器端的 xml 格式的响应(部分如下所示)

<list>
<Response>
<cfgId>903</cfgId>
<recommendations>
&lt;Rule&gt;
&lt;name&gt;Env SSA_RB_RESTART&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;Setting SSA_RB_RESTART=0 will cause RuleBase corruption.Kindly unset this environment variable and
restart the IIR server&lt;/actionResult&gt;
&lt;/Rule&gt;
</recommendations>
</Response>
<Response>
<cfgId>903</cfgId>
<recommendations>
&lt;Rule&gt;
&lt;name&gt;SSAOPTS (+Ltd) setting&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;
Please note that it is not recommended to have SSAOPTS=+Ltd in case of the
Production environment.&lt;/actionResult&gt;
&lt;/Rule&gt;
</recommendations>
</Response>
</list>

更新

我用 xml=$(xmldata); 得到主要的 Response 标签; var resp_x = $(xml).find('Response').text(); 然后我尝试用下面的替换

resp_x = resp_x.replace(/&lt;/g,"<");
resp_x = resp_x.replace(/&gt;/g,">");
var rule_x = $(resp_x).find('name').text();
alert(rule_x);

但它让我一片空白,请帮我获取严重性

更新我的答案

var xmlString=xmlToString(xmldata);
xmlString=xmlString.replace(/(&lt;)/g,"<").replace(/(&gt;)/g,">");

xml=StringtoXML(xmlString);

//now I can do my operations here
$(xml).find('Response').each(function(){
console.debug($(this).find('severity').text());
});


function xmlToString(xmlObj) {
if (navigator.appName == "Netscape")
{
return (new XMLSerializer()).serializeToString(xmlObj);
}
if (navigator.appName == "Microsoft Internet Explorer")
{
return xmlObj.xml;
}
}

function StringtoXML(text){
if (window.ActiveXObject){
var doc=new ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(text);
} else {
var parser=new DOMParser();
var doc=parser.parseFromString(text,'text/xml');
}
return doc;
}

最佳答案

您过早地将返回的 XML 转换为 jQuery 对象,然后进行了错误的替换。尝试这样的事情:

$.ajax({
url: 'list.xml',
dataType: 'text',
success: function(data) {
console.debug(data);

data = data.replace('&lt;', '<', 'gm')
.replace('&gt;', '>', 'gm');

console.debug(data);

var $severities = $(data).find('severity');

console.debug($severities);
}
});

replace() 中,您需要 g(全局)和 m(多行)标志。请参阅 String.replace() 上的文档了解详情。

关于javascript - 如何从客户端的 xml 响应中替换 < 和 >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593441/

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