Calling the Second Ancestors Prototype : Ancestors « XML LINQ « C# / C Sharp






Calling the Second Ancestors Prototype

  

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.Ancestors("Book")) {
            Console.WriteLine("Ancestor element: {0}", element.Name);
        }
    }
}

   
  








Related examples in the same category

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