Csharp/C Sharp/XML LINQ/Traverse

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

Traversing Backward from the Current Node

<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",
         new XComment("Begin Of List"), firstParticipant =
    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")),
    new XComment("End Of List")));
       foreach (XNode node in firstParticipant.NextNode.ElementsBeforeSelf()) {
           Console.WriteLine(node);
       }
   }

}

</source>


Traversing Down from an XElement Object via the Nodes 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 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"))));
       foreach (XNode node in firstParticipant.Nodes()) {
           Console.WriteLine(node);
       }
   }

}

</source>


Traversing Down from an XElement Object via the Nodes Method with Additional Node Types

<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", "J"),
       new XElement("LastName", "R")),
       new XElement("Book",
       new XAttribute("type", "Author"),
       new XElement("FirstName", "E"),
       new XElement("LastName", "B"))));
       foreach (XNode node in firstParticipant.Nodes()) {
           Console.WriteLine(node);
       }
   }

}

</source>


Traversing Up from an XElement Object via the Parent Property

<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 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"))));
       Console.WriteLine(firstParticipant.Parent);
   }

}

</source>