Я получаю доступ к определенному API веб-службы, который требует XML-данных в запросе. Например, API может ожидать:

<?xml version="1.0" encoding="utf-8" ?>

<root>
    <a>1</a>
    <b>2</b>
</root>

Какой самый простой способ создать этот XML-запрос, возможно, используя jQuery? Есть ли какой-нибудь стандартный сериализатор, который я могу использовать для создания объекта JS и сериализации его в XML? Какой идиоматический способ сделать это?

5
Yuval Adam 11 Сен 2010 в 15:18

2 ответа

Лучший ответ

Один из вариантов, который я нашел (который я сейчас использую, пока нет лучшего варианта), - это Плагин json2xml для jQuery.

Пример использования:

var xmlHead = '<?xml version="1.0" encoding="utf-8" ?>';

var j = {
    a : '1',
    b : 'B',
    c : {
      m : 'm'
    }
};

var opts = {
  rootTagName : 'myRoot',
  nodes : ['a', 'b', 'c']
};

var xml = $.json2xml(j, opts);
var xmlData = xmlHead + xml;
2
Yuval Adam 29 Сен 2010 в 08:17

Вы можете использовать GSerializer API для сериализации и десериализации объектов javascripts. Вот пример кода

var myObject = new MyObject(); // The object to serialize
var serializer = new GSerializer(); // The Serializer
var serializedXML = serializer.serialize(myObject, 'MyObject'); // Grab the serialized XML
var deserializedObject = serializer.deserialize(serializedXML); // Deserialize the object from the serialized XML string 

Дополнительные сведения см. В этой статье.

2
Vinay B R 11 Сен 2010 в 11:49