Angular x2js xml not defined

Sercan

I'm tryin to make this example to use xml as json data. But i ve some problem about these code.

courses  = x2js.xml_str2json(data);
console.log(courses.books.course);
$scope.todos =courses.books.course;

In the xml of example. There are books and course tag. But i didnt understand where is 'courses' come from.

I'm tryin to do same example with this xml example

<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
 <DocumentElement xmlns="">
  <semt_kodlari diffgr:id="semt_kodlari1" msdata:rowOrder="0">
   <semt_adi>ALTIKAT</semt_adi>
  </semt_kodlari>
 </DocumentElement>
</diffgr:diffgram>

And here is my HTML part:

X = x2js.xml_str2json(data);
console.log(X.DocumentElement.semt_kodlari);
$scope.todos = X.DocumentElement.semt_kodlari;

When i run this code i take the "Cannot read property 'semt_kodlari' of undefined" error. So can somebody tell me what is wrong in my code and What is the diffrence about course and course's' ?

AWolf

I think you are only missing one parent of your object. If you add diffgram to you console.log it should work as expected.

See the demo below or here at jsfiddle.

        var todoApp = angular.module('todosApp', []);

        todoApp.factory('todoFactory', function ($http) {
            var factory = {};

            factory.getTodos = function () {
                return $http.get("http://cdn.rawgit.com/motyar/bcf1d2b36e8777fd77d6/raw/bfa8bc0d2d7990fdb910927815a40b572c0c1078/out.xml");
            }

            return factory;
        });
        todoApp.factory('getXMLDataFactory', function() {
            
            var x2js = new X2JS(),
                //xml ="<MyRoot><test>Success</test><test2><item>val1</item><item>val2</item></test2></MyRoot>";

                xml = '<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">'+
 '<DocumentElement xmlns="">'+
  '<semt_kodlari diffgr:id="semt_kodlari1" msdata:rowOrder="0">'+
   '<semt_adi>ALTIKAT</semt_adi>'+
  '</semt_kodlari>'+
 '</DocumentElement>'+
'</diffgr:diffgram>';
            console.log(xml, x2js);
            
            return {
                get: function() { 
                    return x2js.xml_str2json(xml);
               }
            };         
        });
        todoApp.controller('todosCtrl', function ($scope, todoFactory, getXMLDataFactory) {

            $scope.todos = [];
            //loadTodos();
            loadData();
            
            function loadTodos() {
                todoFactory.getTodos().success(function (data) {
                    console.log(data);
                    courses = x2js.xml_str2json(data);
                    console.log(courses.books.course);
                    $scope.todos = courses.books.course;
                });
            }
            
            function loadData() {
                console.log('test');
                $scope.todos = getXMLDataFactory.get()
                    .diffgram.DocumentElement.semt_kodlari;
                console.log($scope.todos);
            }
        });
<script src="http://demos.amitavroy.com/learningci/assets/js/xml2json.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="todosApp" ng-controller="todosCtrl">
     <h2>Parsing XML data with AngularJS</h2>
    {{todos|json}}
</div>

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related