Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№107-10-2008 17:06:41

Bender
Участник
 
Группа: Members
Зарегистрирован: 07-10-2008
Сообщений: 4
UA: Firefox 3.0

XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient

Решил попробовать перейти с использования XMLHttpRequest на NsIXmlRpcClient и столкнулся со следующей проблемой. Никак не могу понять как получить результат(ответ от сервера) в виде XML. Конвертация "в лоб" типа "var resultXML = new XML(result)" не работает.
В примерах с NsIXmlRpcClient нашел следующий кусок кода
"listResult = result.QueryInterface(Components.interfaces.nsISupportsArray);"
но у меня оно выдает
"Component returned failure code: 0x80004002 (NS_NOINTERFACE) [nsISupports.QueryInterface]"
тут написано http://people.mozilla.com/~axel/doxygen/html/interfacensIXmlRpcClient.html
что для <struct> необходимо использовать nsIDictionary, но примеров работы с ним я к сожалению не нашел...
Поделитесь, пожалуйста, опытом.


UNBENDING

Отсутствует

 

№207-10-2008 18:38:44

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient

Конвертация "в лоб" типа "var resultXML = new XML(result)" не работает.

если в 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);
	},

Отсутствует

 

№307-10-2008 21:16:39

Bender
Участник
 
Группа: Members
Зарегистрирован: 07-10-2008
Сообщений: 4
UA: Firefox 3.0

Re: XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient

в результате конвертирования таким способом получается пустой XML документ :cry:


UNBENDING

Отсутствует

 

№407-10-2008 21:30:18

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient

у меня работало, для корневого элемента должен быть указан xmlns
тут есть другие примеры

Отсутствует

 

№507-10-2008 21:43:02

Bender
Участник
 
Группа: Members
Зарегистрирован: 07-10-2008
Сообщений: 4
UA: Firefox 3.0

Re: XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient

Shutnik пишет

у меня работало, для корневого элемента должен быть указан xmlns
тут есть другие примеры

Работало в связке с NsIXmlRpcClient? Там в result похоже не текст, а объект какой-то...


UNBENDING

Отсутствует

 

№608-10-2008 14:18:11

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Iceweasel 3.0

Re: XML-RPC. Переход с XMLHttpRequest на NsIXmlRpcClient

Работало в связке с NsIXmlRpcClient? Там в result похоже не текст, а объект какой-то...

ну так определи какой сначала

вот рабочий пример:

Выделить код

Код:

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

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]