Angularjs 将HTML/JS中的工作XML更正分配给angular JS
我的后端提供了一个带有标记的XML响应,这些标记必须首先更正才能进一步处理。我通过将其转换为字符串、进行更正并将其转换回XML来实现这一点 我希望它也能在AngularJS中工作,那么如何在我的模块/控制器中分配这些东西呢 目前,我的模块和控制器如下所示(复制自另一个示例):Angularjs 将HTML/JS中的工作XML更正分配给angular JS,angularjs,xmlhttprequest,odata,xml-serialization,integration,Angularjs,Xmlhttprequest,Odata,Xml Serialization,Integration,我的后端提供了一个带有标记的XML响应,这些标记必须首先更正才能进一步处理。我通过将其转换为字符串、进行更正并将其转换回XML来实现这一点 我希望它也能在AngularJS中工作,那么如何在我的模块/控制器中分配这些东西呢 目前,我的模块和控制器如下所示(复制自另一个示例): var myModule=angular.module(“myModule”,“ODataResources”); 控制器(“MyController”,函数($scope,$odataresource){ $scope.
var myModule=angular.module(“myModule”,“ODataResources”);
控制器(“MyController”,函数($scope,$odataresource){
$scope.results=
$odataresource(“http://services.odata.org/V4/Northwind/Northwind.svc/Products")
.odata()
.filter('单价','>',10)
.filter('中断',真)
.orderBy('UnitsInStock','asc')
.expand('类别')
.query();
});
当您在此页面上插入以下代码时,我的解决方案将使用HTML/JS:
表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
获取我的CD收藏
函数loadDoc(){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
如果(xhttp.readyState==4&&xhttp.status==200){
myFunction(xhttp);
}
};
xhttp.open(“GET”https://xsgeos0015309874trial.hanatrial.ondemand.com/s0015309874trial/xsgeo/geotabelle/geoDB/GeotabelleODataService.xsodata/Adressen?$top=2“,正确);
xhttp.send();
}
函数myFunction(xml){
var i;
var xmlDoc=xml.responseXML;
var s1=新的XMLSerializer().serializeToString(xmlDoc);
var s2=新字符串(s1);
替换变量=s2。拆分('d:纬度')。联接('Latitude');
var replaced2=replaced2.split('d:Longitude').join('Longitude');
var replaced3=replaced2.split('d:hausnumer').join('hausnumer');
var replaced4=replaced3.split('d:PLZ').join('PLZ');
var replaced5=replaced4.split('d:ortsname').join('ortsname');
var replaced6=replaced5.split('d:Street')。join('Street');
var replaced7=replaced6.split('m:type').join('type');
var replaced8=replaced7.split('m:properties').join('properties');
控制台日志(replaced8);
var result=$.parseXML(replaced8);
警报(结果);
var table=“ArtistTitle”;
var x=result.getElementsByTagName(“属性”);
对于(i=0;i<2;i++){
表+=“”+
x[i].getElementsByTagName(“经度”)[0].childNodes[0].nodeValue+
"" +
x[i].getElementsByTagName(“纬度”)[0].childNodes[0].nodeValue+
"";
}
document.getElementById(“demo”).innerHTML=table;
}
提前感谢。使用运行块作为最简单的迁移路径:
var-app=angular.module('foo',[]);
函数foo()
{
函数loadDoc()
{
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数()
{
如果(xhttp.readyState==4&&xhttp.status==200)
{
myFunction(xhttp);
}
};
open(“GET”,“data:application/xml”,true);
xhttp.send();
}
函数myFunction(xml)
{
var table=“ArtistTitle”;
document.getElementById(“demo”).innerHTML=table;
}
loadDoc();
}
app.run(foo)代码>
使用运行块作为最简单的迁移路径:
var-app=angular.module('foo',[]);
函数foo()
{
函数loadDoc()
{
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数()
{
如果(xhttp.readyState==4&&xhttp.status==200)
{
myFunction(xhttp);
}
};
open(“GET”,“data:application/xml”,true);
xhttp.send();
}
函数myFunction(xml)
{
var table=“ArtistTitle”;
document.getElementById(“demo”).innerHTML=table;
}
loadDoc();
}
app.run(foo)代码>
<script>var myModule = angular.module("MyModule", ['ODataResources']);
myModule.controller("MyController", function ($scope, $odataresource) {
$scope.results =
$odataresource("http://services.odata.org/V4/Northwind/Northwind.svc/Products")
.odata()
.filter('UnitPrice', '>', 10)
.filter('Discontinued', true)
.orderBy('UnitsInStock', 'asc')
.expand('Category')
.query();
});</script>
<!DOCTYPE html>
<html>
<style>
table,th,td {
border : 1px solid black;
border-collapse: collapse;
}
th,td {
padding: 5px;
}
</style>
<body>
<button type="button" onclick="loadDoc()">Get my CD collection</button>
<br><br>
<table id="demo"></table>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
xhttp.open("GET", "https://xsgeos0015309874trial.hanatrial.ondemand.com/s0015309874trial/xsgeo/geotabelle/geoDB/GeotabelleODataService.xsodata/Adressen?$top=2", true);
xhttp.send();
}
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var s1 = new XMLSerializer().serializeToString(xmlDoc);
var s2 = new String(s1);
var replaced = s2.split('d:Latitude').join('Latitude');
var replaced2 = replaced.split('d:Longitude').join('Longitude');
var replaced3 = replaced2.split('d:Hausnummer').join('Hausnummer');
var replaced4 = replaced3.split('d:PLZ').join('PLZ');
var replaced5 = replaced4.split('d:ortsname').join('ortsname');
var replaced6 = replaced5.split('d:Street').join('Street');
var replaced7 = replaced6.split('m:type').join('type');
var replaced8 = replaced7.split('m:properties').join('properties');
console.log(replaced8);
var result = $.parseXML(replaced8);
alert(result);
var table="<tr><th>Artist</th><th>Title</th></tr>";
var x = result.getElementsByTagName("properties");
for (i = 0; i < 2; i++) {
table += "<tr><td>" +
x[i].getElementsByTagName("Longitude")[0].childNodes[0].nodeValue +
"</td><td>" +
x[i].getElementsByTagName("Latitude")[0].childNodes[0].nodeValue +
"</td></tr>";
}
document.getElementById("demo").innerHTML = table;
}
</script>
</body>
</html>