Javascript 如何更换&;书信电报;及;燃气轮机;从客户端的xml响应
我有一个来自服务器端的xml格式的响应(部分如下所示) 但它给了我一个空白,请帮我取Javascript 如何更换&;书信电报;及;燃气轮机;从客户端的xml响应,javascript,jquery,Javascript,Jquery,我有一个来自服务器端的xml格式的响应(部分如下所示) 但它给了我一个空白,请帮我取严重性 更新我的答案 var xmlString=xmlToString(xmldata); xmlString=xmlString.replace(/(<)/g,"<").replace(/(>)/g,">"); xml=StringtoXML(xmlString); //now I can do my
严重性
更新我的答案
var xmlString=xmlToString(xmldata);
xmlString=xmlString.replace(/(<)/g,"<").replace(/(>)/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;
}
var xmlString=xmlToString(xmldata);
xmlString=xmlString.replace(/()/g,“”);
xml=StringtoXML(xmlString);
//现在我可以在这里做手术了
$(xml).find('Response').each(function(){
调试($(this.find('severity').text());
});
函数xmlToString(xmlObj){
如果(navigator.appName==“Netscape”)
{
返回(新的XMLSerializer()).serializeToString(xmlObj);
}
如果(navigator.appName==“Microsoft Internet Explorer”)
{
返回xmlObj.xml;
}
}
函数StringtoXML(文本){
if(window.ActiveXObject){
var doc=新的ActiveXObject('Microsoft.XMLDOM');
doc.async='false';
doc.loadXML(文本);
}否则{
var parser=新的DOMParser();
var doc=parser.parseFromString(text,'text/xml');
}
退货单;
}
像这样试试
resp_x = resp_x.replace(/(<)/g,"<");
resp_x = resp_x.replace(/(>)/g,">");
var rule_x=$(resp_x).find('name').text();
alert(rule_x);
resp_x=resp_x.replace(/()/g,”);
var rule_x=$(resp_x).find('name').text();
警报(规则x);
希望这有帮助像这样试试
resp_x = resp_x.replace(/(<)/g,"<");
resp_x = resp_x.replace(/(>)/g,">");
var rule_x=$(resp_x).find('name').text();
alert(rule_x);
resp_x=resp_x.replace(/()/g,”);
var rule_x=$(resp_x).find('name').text();
警报(规则x);
希望这有帮助下一个示例可以帮助您:
var str="<Rule><name>Env SSA_RB_RESTART</name><category>none</category><severity>warning</severity><ruleEvalResult>true</ruleEvalResult><actionResult>Setting SSA_RB_RESTART=0 will cause RuleBase corruption.Kindly unset this environment variable and restart the IIR server</actionResult>"
str=str.replace(/<|>/g,function(s){return s==="<"?"<":">"});
// str now is: "<Rule><name>Env SSA_RB_RESTART</name><category>none</category><severity>warning</severity><ruleEvalResult>true</ruleEvalResult><actionResult>Setting SSA_RB_RESTART=0 will cause RuleBase corruption.Kindly unset this environment variable and restart the IIR server</actionResult>"
下一个示例可以帮助您:
var str="<Rule><name>Env SSA_RB_RESTART</name><category>none</category><severity>warning</severity><ruleEvalResult>true</ruleEvalResult><actionResult>Setting SSA_RB_RESTART=0 will cause RuleBase corruption.Kindly unset this environment variable and restart the IIR server</actionResult>"
str=str.replace(/<|>/g,function(s){return s==="<"?"<":">"});
// str now is: "<Rule><name>Env SSA_RB_RESTART</name><category>none</category><severity>warning</severity><ruleEvalResult>true</ruleEvalResult><actionResult>Setting SSA_RB_RESTART=0 will cause RuleBase corruption.Kindly unset this environment variable and restart the IIR server</actionResult>"
您过早地将返回的XML转换为jQuery对象,然后执行错误的替换操作。试着这样做:
$.ajax({
url: 'list.xml',
dataType: 'text',
success: function(data) {
console.debug(data);
data = data.replace('<', '<', 'gm')
.replace('>', '>', 'gm');
console.debug(data);
var $severities = $(data).find('severity');
console.debug($severities);
}
});
$.ajax({
url:'list.xml',
数据类型:“文本”,
成功:功能(数据){
调试(数据);
数据=数据。替换(“”,,“gm”);
调试(数据);
变量$severity=$(数据)。查找('severity');
console.debug($严重性);
}
});
在
replace()
中,您需要g
(全局)和m
(多行)标志。有关详细信息,请参阅上的文档。您过早地将返回的XML转换为jQuery对象,然后执行错误的替换操作。试着这样做:
$.ajax({
url: 'list.xml',
dataType: 'text',
success: function(data) {
console.debug(data);
data = data.replace('<', '<', 'gm')
.replace('>', '>', 'gm');
console.debug(data);
var $severities = $(data).find('severity');
console.debug($severities);
}
});
$.ajax({
url:'list.xml',
数据类型:“文本”,
成功:功能(数据){
调试(数据);
数据=数据。替换(“”,,“gm”);
调试(数据);
变量$severity=$(数据)。查找('severity');
console.debug($严重性);
}
});
在
replace()
中,您需要g
(全局)和m
(多行)标志。有关详细信息,请参阅上的文档。疯狂的xml响应。为什么规则
名称
<代码>严重性不是标签?我会让他们修复服务器。这就是问题所在。谢谢大家的评论和回复。为什么规则
名称
<代码>严重性不是标签?我会让他们修复服务器。这就是问题所在。谢谢大家的评论和回答。我认为我的回复是xml对象格式的,因此无法使用replace
查看问题中的我的更新。当我使用alert(xmldata)时
它给我[object]
和警报(xml)
它给了我[object object]
@Abhishek Simon:我无法测试这个,但尝试在我的第二个示例代码行中替换var recs=$(response)代码>行var recs=$(xmldata)代码>或带有行var recs=$($(xmldata))。查找(“建议”)代码><代码>for
循环必须保持不变。嗨@Andrew:我设法找到了一个解决方案。。有关我的解决方案,请参阅我更新的问题。谢谢你的回答,我想我的回复是xml对象格式的,因此不能使用replace
查看问题中的我的更新。当我使用alert(xmldata)时
它给我[object]
和警报(xml)
它给了我[object object]
@Abhishek Simon:我无法测试这个,但尝试在我的第二个示例代码行中替换var recs=$(response)代码>行var recs=$(xmldata)代码>或带有行var recs=$($(xmldata))。查找(“建议”)代码><代码>for
循环必须保持不变。嗨@Andrew:我设法找到了一个解决方案。。有关我的解决方案,请参阅我更新的问题。感谢您的回答我的回答是xml对象
,因为当我使用alert(xmldata)时
它给我[object]
和警报(xml)代码>它给了我[对象]
。在这种情况下可以做什么?首先,您应该停止执行alert()
进行调试。使用Firefox并安装Firebug,或者使用带有内置开发工具的浏览器并改用console.debug()
。我将用一个完整的例子更新我的答案。我的回答是xml对象
,因为当我使用alert(xmldata)时
它给我[object]
和警报(xml)代码>它给了我[对象]
。在这种情况下可以做什么?首先,您应该停止执行alert()
进行调试。使用Firefox并安装Firebug,或者使用带有内置开发工具的浏览器并改用console.debug()
。我将用一个完整的例子更新我的答案。