Csharp/C Sharp/XML LINQ/AncestorsAndSelf — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 14:34, 26 мая 2010

Calling the First AncestorsAndSelf Prototype

<source lang="csharp"> 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.AncestorsAndSelf()) {
           Console.WriteLine("Ancestor element: {0}", element.Name);
       }
   }

}

</source>


Calling the Second AncestorsAndSelf Prototype

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

}

</source>


Traversing Up from an XElement Object via the AncestorsAndSelf Method

<source lang="csharp"> 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() {
       XElement firstParticipant;
       XDocument xDocument = new XDocument(
      new XDeclaration("1.0", "UTF-8", "yes"),
      new XDocumentType("Books", null, "Books.dtd", null),
      new XProcessingInstruction("Book", "out-of-print"),
      new XElement("Books", firstParticipant =
        new XElement("Book",
      new XComment("a new author."),
        new XProcessingInstruction("AuthorHandler", "new"),
        new XAttribute("type", "Author"),
        new XElement("FirstName",
      new XText("A"),
      new XElement("NickName", "J")),
     new XElement("LastName", "R")),
     new XElement("Book",
     new XAttribute("type", "Author"),
     new XElement("FirstName", "E"),
     new XElement("LastName", "B"))));
       foreach (XElement element in firstParticipant.
       Element("FirstName").Element("NickName").AncestorsAndSelf()) {
           Console.WriteLine(element.Name);
       }
   }

}

</source>