Q:

Trouble With Specifying Correct ng-repeat Tag

I am new to AngularJS. 
I am trying to display blog entries on a page using ng-repeat.   
I am running into a bit of confusion how to properly specifying the correct attribute for the ng-repeat tag. 
My JSON data source.   This is converted using X2JS from an XML file:
{
    "blog": {
        "article": [
            {
                "id": "1",
                "author": "eat-sleep-code",
                "title": {
                    "__cdata": "The first article."
                },
                "content": {
                    "__cdata": "\n        This is my first article in my test site.\n      "
                },
                "createdate": "2014-05-09"
            },
            {
                "id": "2",
                "author": "eat-sleep-code",
                "title": {
                    "__cdata": "The second article."
                },
                "content": {
                    "__cdata": "\n        This is my second article in my test site.  This article's create date is actually earlier.\n      "
                },
                "createdate": "2014-05-08"
            }
        ]
    }
}

My partial view: 
<article ng-repeat="article in data.blog">
    <h2>{{title}}</h2>
    {{content}}
    {{id}}  
</article>

My app.js:
//Define an angular module for our app
var app = angular.module('eatsleepcode', ['ngRoute']); 

//Define Routing
app.config(['$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {    
        $routeProvider.      
            /* Root */
            when('/', {templateUrl: 'views/home.html', controller: 'DefaultController'}).
            when('/blog', {templateUrl: 'views/blog.html', controller: 'BlogController'}).  
            otherwise({
                redirectTo: '/404'
            });
            $locationProvider.html5Mode(false);
            $locationProvider.hashPrefix("!");
}]);  

/* Controllers */
app.controller('DefaultController', function($scope) {});

app.controller('BlogController', function($scope, $routeParams, $http) {
    $http({method: 'GET', url: '//eat-sleep-code.com/data/blog.xml'}).
        success(function(data, status) {
            var x2js = new X2JS();
            var jsonString = JSON.stringify(x2js.xml_str2json(data));
            $scope.data = jsonString;
            $scope.status = status;
            console.log('DATA: ' + jsonString);
            console.log('STATUS: ' + status);
        }).
        error(function(data, status) {
            $scope.data = data || "Request failed";
            $scope.status = status;
            console.log('STATUS: ' + status);
        });
});

When I view the elements in Google Chrome, I see: <! -- ngRepeat: article in data.blog -- > but nothing is actually being repeated.

A:

You need to use ng-repeat on an array and data.blog is an object not an array.
instead of
<article ng-repeat="article in data.blog">

try using this:
<article ng-repeat="article in data.blog.article">
    <h2>{{article.title.__cdata}}</h2>

article is the property which you wish to enumerate.
Edit Also note that the elements you wish to display title have a child property that contains the text you wish to display named __cdata

