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

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

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

Accessing an Element"s Child Elements Using the Elements 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 XComment("This is 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.Elements()) {
            Console.WriteLine(node);
        }
    }
}


Accessing Named Child Elements Using the Elements 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 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.Elements("FirstName")) {
            Console.WriteLine(node);
        }
    }
}


Accessing the First Child Element with a Specified Name

 
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("This is 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"))));
        Console.WriteLine(firstParticipant.Element("FirstName"));
    }
}


FirstNode and LastNode give you direct access to the first or last child node

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
public class MainClass {
    public static void Main() {
        var bench = new XElement("bench",
                      new XElement("t",
                        new XElement("B", "H"),
                        new XElement("A", "R")
                      ),
                      new XElement("t",
                        new XElement("B", "S"),
                        new XElement("A", "N")
                      ),
                      new XComment("This is the comment")
                    );
        foreach (XNode node in bench.Nodes())
            Console.WriteLine(node.ToString(SaveOptions.DisableFormatting) + ".");
    }
}