好的,我的responseText包含一个'&‘字符,这似乎会在解析时导致问题。所以我想抓起我的responseText,把'&‘改为'&’
我知道responseText是一个字符串,理想情况下,我希望将它反馈到responseXML中,以便使用&解析新的xml。
任何帮助都非常感谢
responseXML = xmlhttp.responseXML;
var myResponseText = "<document-metadata><item><name>ccms_customer_key</name><value>0100000931012004110</value></item><item><name>ccms_customer_name</name><value>Mr Joe Bloggs</value></item><item><name>ccms_customer_salutation_name</name><value>Mr</value></item><item><name>ccms_rm_name</name><value></value></item><item><name>ccms_dms_key</name><value>2432559OEKM</value></item><item><name>ccms_customer_address</name><value>Main & Street Dublin </value></item></document-metadata>";
/*
if(myResponseText.indexOf('&') >= 0)
{
var str = myResponseText.replace(/&/g,"&");
return str;
}
*/
//old line getSession().setAttribute('LH_METADATA_XML',xmlhttp.responseText);
getSession().setAttribute('LH_METADATA_XML',myResponseText);
// extract COMP_DMS_KEY from metadata
var root = responseXML.getElementsByTagName('document-metadata').item(0);发布于 2013-01-29 22:39:34
为什么不用一种完全不同的方式来解析字符串,比如使用DOMParser或document.implementation.createHTMLDocument("") (由于错误,这可能是您需要的),或者甚至只是创建一个HTMLDivElement并设置innerHTML
var doc = document.implementation.createHTMLDocument(""); // create a HTML document
doc.body.innerHTML = "<document-metadata><item><name>ccms_customer_key</name><value>0100000931012004110</value></item><item><name>ccms_customer_name</name><value>Mr Joe Bloggs</value></item><item><name>ccms_customer_salutation_name</name><value>Mr</value></item><item><name>ccms_rm_name</name><value></value></item><item><name>ccms_dms_key</name><value>2432559OEKM</value></item><item><name>ccms_customer_address</name><value>Main & Street Dublin </value></item></document-metadata>";
doc.body; // navigate to your root node from here这样做(即使用文本/html而不是应用程序/xml)将意味着解析器不那么严格,不会受到&的困扰,同时保留使用DOM方法的能力。
现在,您甚至可以重新序列化并将其转换为真正的XML文档,假设root是您的根节点。
var x = new XMLSerializer(), p = new DOMParser(), xml_string, xml_doc;
xml_string = x.serializeToString(root); // now we have a valid string
xml_doc = p.parseFromString(xml_string, 'application/xml'); // and now it is an XML documenthttps://stackoverflow.com/questions/14585142
复制相似问题