Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用angular和x2js解析RSS XML,然后使用with ng repeat_Javascript_Angularjs_Xml_Rss - Fatal编程技术网

Javascript 使用angular和x2js解析RSS XML,然后使用with ng repeat

Javascript 使用angular和x2js解析RSS XML,然后使用with ng repeat,javascript,angularjs,xml,rss,Javascript,Angularjs,Xml,Rss,嗨,希望有人能帮忙。我绞尽脑汁想弄明白这件事已经好几天了 我正在尝试使用angular和x2js解析xml rss文件,以仅返回项对象。格式如下: <rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"

嗨,希望有人能帮忙。我绞尽脑汁想弄明白这件事已经好几天了

我正在尝试使用angular和x2js解析xml rss文件,以仅返回对象。格式如下:

<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
   xmlns:dc="http://purl.org/dc/elements/1.1/" 
   xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
   <title>Test Title</title>
   <link>
     https:somelocation.com
   </link>
   <description>List Title 1</description>
   <pubDate>Wed, 26 Apr 2017 13:04:51 GMT</pubDate>
   <dc:date>2017-04-26T13:04:51Z</dc:date>
   <item>
     <title>Test Title 1</title>
     <link>
      https://plnkr.co
     </link>
     <description>
      <DIV> <P>Some description text</P> </DIV>
     </description>
    <pubDate>Wed, 26 Apr 2017 13:04:51 GMT</pubDate>
    <guid>
      https://plnkr.co
    </guid>
    <dc:date>2017-04-26T13:04:51Z</dc:date>
  </item>
 </channel>
</rss>

plunkr位于此处:

我忘了返回并关闭此按钮。回答,以防有人遇到这个问题。 我更新了我的html,从ul标签中删除了“ng repeat”属性,并用它替换了li ng repeat。我还通过更改
$scope.list=response更新了脚本
$scope.list=response.data。通过这样做,我能够避免在rss中的channel标记下迭代所有内容,而只针对项目本身。请参阅下面的代码,这里是更新的


你找到解决办法了吗?嗨,阿米特,找到了。我会在短期内回答及通过这项质询
<html ng-app="myApp">

  <head>
   <script data-require="angular.js@4.0.0" data-semver="4.0.0" 
    src="https://code.angularjs.org/latest/angular.min.js"></script>
   <script src="xml2Json.js"></script>
   <link rel="stylesheet" href="style.css" />
   <script src="script.js"></script>
  </head>

  <body ng-controller="listController">
   <ul ng-repeat="item in list">
    <li ng-repeat="i in item">
    <h2><a href="{{i.link}}">{{i.title}}</a></h2>
   </li>
  </ul>
 </body>

</html>
var myApp = angular.module('myApp', []);

myApp.controller('listController', function($scope,$http){

  $http.get('rssFeed.xml', {
    transformResponse: function (data) {
     var x2js = new X2JS();
     var listData = x2js.xml_str2json(data);
     return listData.rss.channel.item;
    }
  }).then(function successCallback(response, status){    
     $scope.list = response; 
   }, function errorCallback(response, status){
      console.log('Request failed' + status);
  });

});
    <html ng-app="myApp">
         <head>
          <script data-require="angular.js@4.0.0" data-semver="4.0.0" 
          src="https://code.angularjs.org/latest/angular.min.js"></script>
          <script src="xml2Json.js"></script>
          <link rel="stylesheet" href="style.css" />
          <script src="script.js"></script>
        </head>
        <body ng-controller="listController">
         <ul>
          <li ng-repeat="item in list">
           <h2><a href="{{i.link}}">{{i.title}}</a></h2>
          </li>
         </ul>
        </body>
    </html>
    var myApp = angular.module('myApp', []);

    myApp.controller('listController', function($scope,$http){

      $http.get('rssFeed.xml', {
        transformResponse: function (data) {
         var x2js = new X2JS();
         var listData = x2js.xml_str2json(data);
         return listData.rss.channel.item;
        }
      }).then(function successCallback(response, status){    
          $scope.list = response.data; 
       }, function errorCallback(response, status){
          console.log('Request failed' + status);
      });

    });