Saturday, May 11, 2024
 Popular · Latest · Hot · Upcoming
-4
rated 0 times [  3] [ 7]  / answers: 1 / hits: 22473  / 13 Years ago, thu, september 29, 2011, 12:00:00

I have a response that comes from server side in xml format (partial like below)



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


update



I get the main Response tag with xml=$(xmldata); var resp_x = $(xml).find('Response').text(); and then I am trying to replace with below



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


but it gives me blank, please help me fetch severity.



UPDATE with my answer



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

More From » jquery

 Answers
10

You're converting the returned XML to a jQuery object too early and then doing the replace wrong. Try something like this:



$.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);
}
});


In the replace(), you need both the g (global) and m (multi-line) flags. See the documentation on String.replace() for details.


[#89868] Tuesday, September 27, 2011, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
harleyaleenag

Total Points: 678
Total Questions: 121
Total Answers: 105

Location: Papua New Guinea
Member since Thu, Jul 9, 2020
4 Years ago
harleyaleenag questions
Thu, May 5, 22, 00:00, 2 Years ago
Wed, Aug 19, 20, 00:00, 4 Years ago
;