首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在responseXML中解析responseText或更改responseText

在responseXML中解析responseText或更改responseText
EN

Stack Overflow用户
提问于 2013-01-29 22:24:46
回答 1查看 3.1K关注 0票数 0

好的,我的responseText包含一个'&‘字符,这似乎会在解析时导致问题。所以我想抓起我的responseText,把'&‘改为'&

我知道responseText是一个字符串,理想情况下,我希望将它反馈到responseXML中,以便使用&解析新的xml。

任何帮助都非常感谢

代码语言:javascript
复制
            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,"&amp;");
            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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-29 22:39:34

为什么不用一种完全不同的方式来解析字符串,比如使用DOMParserdocument.implementation.createHTMLDocument("") (由于错误,这可能是您需要的),或者甚至只是创建一个HTMLDivElement并设置innerHTML

代码语言:javascript
复制
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是您的根节点。

代码语言:javascript
复制
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 document
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14585142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档