如何从javascript中读取WCF数据表中的XML数据? [英] How to read XML data return from WCF datatable in javascript?

查看:56
本文介绍了如何从javascript中读取WCF数据表中的XML数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我们当前的服务是在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆