>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient http://forum.mozilla-russia.org/viewtopic.php?id=26891 |
Bender > 07-10-2008 17:06:41 |
Решил попробовать перейти с использования XMLHttpRequest на NsIXmlRpcClient и столкнулся со следующей проблемой. Никак не могу понять как получить результат(ответ от сервера) в виде XML. Конвертация "в лоб" типа "var resultXML = new XML(result)" не работает. |
Shutnik > 07-10-2008 18:38:44 |
если в result содежрится xml-текст, то перевести его в xml-объект можно так: Выделить код Код:str_to_xml : function (str) { return (new DOMParser()).parseFromString(str, "text/xml"); }, на всякий случай обратно: Выделить код Код:xml_to_str : function (xml) { return (new XMLSerializer()).serializeToString(xml); }, |
Bender > 07-10-2008 21:16:39 |
в результате конвертирования таким способом получается пустой XML документ |
Shutnik > 07-10-2008 21:30:18 |
у меня работало, для корневого элемента должен быть указан xmlns |
Bender > 07-10-2008 21:43:02 |
Shutnik пишет
Работало в связке с NsIXmlRpcClient? Там в result похоже не текст, а объект какой-то... |
Shutnik > 08-10-2008 14:18:11 |
ну так определи какой сначала вот рабочий пример: Выделить код Код:function str_to_xml (str) { return (new DOMParser()).parseFromString(str, "text/xml"); } function xml_to_str (xml) { return (new XMLSerializer()).serializeToString(xml); } var tmp = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "test"); tmp.setAttribute("foo", "bar"); var quux = document.createElement("quux"); quux.setAttribute("hello", "world"); tmp.appendChild(quux); var xml = str_to_xml(xml_to_str(tmp)); // #document alert(xml.firstChild.firstChild.getAttribute("hello")); // world |