Without Calling the Ancestors Operator : Ancestors « XML LINQ « C# / C Sharp






Without Calling the Ancestors Operator

  

using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
public class MainClass {
    public static void Main() {
        XDocument xDocument = new XDocument(
         new XElement("Books",
           new XElement("Book",
            new XAttribute("type", "Author"),
            new XElement("FirstName", "J"),
           new XElement("LastName", "R")),
           new XElement("Book",
            new XAttribute("type", "Author"),
           new XElement("FirstName", "E"),
           new XElement("LastName", "B"))));

        IEnumerable<XElement> elements =
         xDocument.Element("Books").Descendants("FirstName");

        foreach (XElement element in elements) {
            Console.WriteLine("Source element: {0} : value = {1}",element.Name, element.Value);
        }

        foreach (XElement element in elements) {
            foreach (XElement e in element.Ancestors())
                Console.WriteLine("Ancestor element: {0}", e.Name);
        }
    }
}

   
  








Related examples in the same category

1.An Example of Calling the First Ancestors Prototype
2.A More Concise Example of Calling the First Ancestors Prototype
3.Calling the Second Ancestors Prototype
4.XElement.AncestorsAndSelf returns a collection of elements
5.XElement.AncestorsAndSelf(XName) returns a filtered collection of elements that contain this element