如何将字符串转换为JavaScript中的XML对象?
问题描述:
我知道this问题已经存在,但它没有给我带来好运。如何将字符串转换为JavaScript中的XML对象?
我有它加载通过以下方法用physicial XML文档的应用程序:
jQuery.ajax({
type: "GET",
url: fileName,
dataType: "xml",
success: function (data) {
// etc...
}
});
我解析XML并将其转换成被保存到一个变量,以便它可以容易地被存储在字符串一个数据库。我现在该如何将这个变量中的数据转换回XML对象,以便它可以被解析?
答
非jQuery的版本:
var parseXml;
if (window.DOMParser) {
parseXml = function(xmlStr) {
return (new window.DOMParser()).parseFromString(xmlStr, "text/xml");
};
} else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
parseXml = function(xmlStr) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlStr);
return xmlDoc;
};
} else {
parseXml = function() { return null; }
}
var xmlDoc = parseXml("<foo>Stuff</foo>");
if (xmlDoc) {
window.alert(xmlDoc.documentElement.nodeName);
}
因为jQuery的1.5,你可以使用jQuery.parseXML()
,这在完全相同的方式与上面的代码工作:
var xmlDoc = jQuery.parseXML("<foo>Stuff</foo>");
if (xmlDoc) {
window.alert(xmlDoc.documentElement.nodeName);
}
答
如果它仍然是XML格式,你应该能够将它包装在jQuery函数中,并开始使用jQuery来解析它。例如:
$(xmlStringFromDB).find('foo');
+0
如果xmlStringFromDB仍然是一个字符串,那么每次使用它时都会强制将字符串转换为XML。如果你只需要一次,或者可以链接所有的请求,那么你当然没问题,但除此之外,你应该将它保存在一个(临时)变量中。 – 2014-05-24 09:46:55
你的数据可能看起来像什么? – Reigel 2010-06-16 14:26:48