PdfRpt.DataSources.XmlDataSource.Rows C# (CSharp) Method

Rows() public method

The data to render.
public Rows ( ) : IEnumerable>
return IEnumerable>
        public IEnumerable<IList<CellData>> Rows()
        {
            using (var reader = new StringReader(_xml))
            {
                var xDoc = XDocument.Load(reader);
                var list = xDoc.XPathSelectElements(_descendantsXPath);

                foreach (var el in list)
                {
                    var pdfCellData = new List<CellData>();
                    foreach (var item in _xPathList)
                    {
                        var value = string.Empty;

                        var dataEval = (IEnumerable<object>)el.XPathEvaluate(item);
                        var data = dataEval.FirstOrDefault();
                        var attribute = data as XAttribute;
                        if (attribute != null)
                        {
                            value = attribute.Value;
                        }
                        else
                        {
                            var element = data as XElement;
                            if (element != null)
                            {
                                value = element.Value;
                            }
                        }

                        pdfCellData.Add(new CellData
                        {
                            PropertyName = item,
                            PropertyValue = value,
                            PropertyIndex = _index++
                        });
                    }
                    yield return pdfCellData;
                }
            }
        }