Csharp/C Sharp/XML LINQ/Traverse

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

Traversing Backward from the Current Node

 
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);
        }
    }
}


Traversing Down from an XElement Object via the Nodes Method

 
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);
        }
    }
}


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

 
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);
        }
    }
}


Traversing Up from an XElement Object via the Parent Property

 
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);
    }
}