2016-04-22 3 views
1

Ich habe das folgende Schema, in dem ich jeden aufgelisteten Elementnamen finden muss.Parsen von XML-Schema mit XML-Parser in JavaScript

> <?xml version='1.0' encoding='UTF-8' ?> <xs:schema 
> xmlns:xs='http://www.w3.org/2001/XMLSchema'> 
> 
> 
> <xs:sequence> <xs:element name='name' type='xs:string'/> <xs:element 
> name='address' type='xs:string'/> <xs:element name='city' 
> type='xs:string'/> <xs:element name='country' type='xs:string'/> 
> </xs:sequence> 
> 
> </xs:schema> 
  1. Namen
  2. Straße
  3. Stadt
  4. Zustand
  5. Land

ich mit diesem Code versucht:

var app = angular.module('httpApp', []); 

    app.controller('httpController', function ($scope, $http) { 

     var xmlm="<?xml version='1.0' encoding='UTF-8' ?><xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'><xs:sequence><xs:element name='name' type='xs:string'/><xs:element name='address' type='xs:string'/><xs:element name='city' type='xs:string'/><xs:element name='country' type='xs:string'/></xs:sequence></xs:schema>"; 

       //var x2js = new X2JS(); 
       $scope.data=xmlm; 
       //var aftCnv = x2js.xml_str2json(xmlm); 

       //$scope.jsonic=aftCnv; 

     xmlDoc = $.parseXML(xmlm), 
     $xml = $(xmlDoc), 
     $name = $xml.find("xs:sequence"); 
     $scope.data=$name.text(); 
     $("#1").append($name.text()); 

Ich bekomme weder Fehler auf der Konsole oder der Ausgabe. Die Seite ist leer.

Antwort

1

Sie können diese jQuery XML to JSON Plugin verwenden.

Probe (mit XML-string):

<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.3.min.js"></script> 
<script type="text/javascript" src="https://jquery-xml2json-plugin.googlecode.com/svn/trunk/jquery.xml2json.js"></script> 
<script type="text/javascript"> 
    $(function() { 

     var 
      xmlm, 
      json, 
      elements; 

     xmlm = 
      "<?xml version='1.0' encoding='UTF-8' ?>" + 
      "<xs:schema" + 
      " xmlns:xs='http://www.w3.org/2001/XMLSchema'>" + 
      " <xs:sequence>" + 
      "  <xs:element name='name' type='xs:string'/>" + 
      "  <xs:element name='address' type='xs:string'/>" + 
      "  <xs:element name='city' type='xs:string'/>" + 
      "  <xs:element name='country' type='xs:string'/>" + 
      " </xs:sequence>" + 
      "</xs:schema>"; 

     json = $.xml2json(xmlm); 
     elements = json.sequence.element; 

     for (var i in elements) { 

      console.log(elements[i].name); 
     } 
    }); 
</script> 

Ergebnis:

Name
Adresse
Stadt
Land