我们使用JSON.stringify(oData);
来获取json中的数据,我们如何以xml的形式获取数据?
oModel.read('/', null, null, true, function(oData, oResponse){
var data = JSON.stringify(oData);
document.write(data );
});
答案 0 :(得分:0)
要获取XML格式的响应,请将$ format = xml添加到odata url
参见示例:
要获得XML格式的回复,请使用sap.ui.model.xml.XMLModel
oModel.read('/?$format=xml', null, null, true, function(oData, oResponse){
var xmlDataModel = new sap.ui.model.xml.XMLModel(oData);
});
答案 1 :(得分:0)
您正在使用OData服务,但您希望以特定格式提供响应。对我来说,这只能意味着你想要绕过ODataModel机制为你做的所有工作,并获得OData服务器返回的原始XML。如果是这样的话,我有一个问题和答案。
问题:为什么?
答案:如果你真的想从OData响应中获取XML,即通常从诸如http://services.odata.org/Northwind/Northwind.svc/Products之类的Northwind实体集返回的原始Atom提要,那么你实际上可以访问整个HTTP响应read()方法成功回调中的对象。在您的问题中扩展源代码,它看起来像这样:
oModel.read('/', null, null, true, function(oData, oResponse){
document.write(oResponse.body);
});
这会产生这样的结果:
<feed xml:base="http://services.odata.org/Northwind/Northwind.svc/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<id>http://services.odata.org/Northwind/Northwind.svc/Products</id>
<title type="text">Products</title>
<updated>2014-08-26T07:33:36Z</updated>
<link rel="self" title="Products" href="Products"/>
<entry>
<id>http://services.odata.org/Northwind/Northwind.svc/Products(1)</id>
...
但是 - 你确定你真的想要这个吗?