如何从javascript中读取WCF数据表中的XML数据? [英] How to read XML data return from WCF datatable in javascript?
问题描述
我们当前的服务是在WCF中开发的,大部分方法都以DataTable和字符串组合形式返回。
现在他们需要开发一个基于此服务的Web基础,但不需要重新构建或修改代码,只需将其作为json返回以支持http请求。
以下是我的示例数据:
Hi,
Our current service was developed in WCF and most of the method return as DataTable and string combination.
Now they need to develop a web base on this service but don't need to restructure or modify the code, just return it as json to support http request.
Below is my example data:
<DataTable xmlns="http://schemas.datacontract.org/2004/07/System.Data">
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="TableName" msdata:UseCurrentLocale="true"><xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="TableName"><xs:complexType><xs:sequence><xs:element name="TraID" type="xs:int" minOccurs="0"/><xs:element name="TraDate" type="xs:dateTime" minOccurs="0"/></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema>
<diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<DocumentElement xmlns="">
<TableName diffgr:id="TableName1" msdata:rowOrder="0">
<TraID>16001</TraID>
<TraDate>2016-07-30T00:00:00+07:00</TraDate>
</TableName>
<TableName diffgr:id="TableName2" msdata:rowOrder="1">
<TraID>16002</TraID>
<TraDate>2016-07-29T00:00:00+07:00</TraDate>
</TableName>
</DocumentElement>
</diffgr:diffgram>
</DataTable>
AngularJS $ http方法:
AngularJS $http method:
$http({
url: api_url + "/GetTra?PassKey=" + passkey,
method: "GET",
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
dataType: 'json'
}).then(function (r) {
console.log(r.data.GetTraResult);
}, function (e) {
});
所以我的问题是我怎样才能将xml数据作为一个数组或对象在视图中显示?
我尝试了类似这样的东西,但它说未定义标签名称
so my problem is how can I get above xml data as an array or object to display in a view?
I have tried something like this but it says got undefined of tag name
var transaction = [];
var tra = {
};
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var data = xmlDoc.getElementsByTagName("TableName");
for (i = 0; i < data.length; i++) {
var d = data[i];
tra.TraID = d[i].getElementsByTagName("TraID")[0].childNodes[0].nodeValue;
tra.TraDate = d[i].getElementsByTagName("TraDate")[0].childNodes[0].nodeValue;
transaction.push(tra);
}
}
提前感谢您的帮助。
我尝试了什么:
我尝试使用谷歌的一些标准xml功能,但它不能用于这个xml数据格式,所以请帮帮我。
Thank you for your help in advance.
What I have tried:
I try to use some standard xml function from google but it not working in this xml data format, so please help me out.
推荐答案
http方法:
http method:
http({
url:api_url + / GetTra?PassKey = + passkey,
方法: GET,
标题:{
' Content-Type':' application / json; charset = utf-8'
},
dataType:< span class =code-string>' json'
})。then( function (r){
console .log(r.data.GetTraResult);
},功能(e){
});
http({ url: api_url + "/GetTra?PassKey=" + passkey, method: "GET", headers: { 'Content-Type': 'application/json; charset=utf-8' }, dataType: 'json' }).then(function (r) { console.log(r.data.GetTraResult); }, function (e) { });
所以我的问题是如何将xml数据作为一个数组或对象显示在视图中?
我试过了这样的事情,但它说未定义标签名称
so my problem is how can I get above xml data as an array or object to display in a view?
I have tried something like this but it says got undefined of tag name
var transaction = [];
var tra = {
};
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var data = xmlDoc.getElementsByTagName("TableName");
for (i = 0; i < data.length; i++) {
var d = data[i];
tra.TraID = d[i].getElementsByTagName("TraID")[0].childNodes[0].nodeValue;
tra.TraDate = d[i].getElementsByTagName("TraDate")[0].childNodes[0].nodeValue;
transaction.push(tra);
}
}
提前感谢您的帮助。
我尝试了什么:
我尝试使用谷歌的一些标准xml功能,但它不能用于这个xml数据格式,所以请帮帮我。
Thank you for your help in advance.
What I have tried:
I try to use some standard xml function from google but it not working in this xml data format, so please help me out.
这篇关于如何从javascript中读取WCF数据表中的XML数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!