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

Description

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

Demo

using System;
using System.Linq;
using System.Xml.Linq;
using System.Collections.Generic;

class Program//from w ww .  ja  va  2  s.  com
{
    static void Main(string[] args){
            XElement firstParticipant;
            
            //  A full document with all the bells and whistles.
            XDocument xDocument = new XDocument(
              new XDeclaration("1.0", "UTF-8", "yes"),
              new XDocumentType("Books", null, "Books.dtd", null),
              new XProcessingInstruction("BookCataloger", "out-of-print"),
              //  Notice on the next line that we are saving off a reference to the first
              //  Book element.
              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", "Joe"),
                  new XElement("LastName", "Ruby")),
                new XElement("Book",
                  new XAttribute("type", "Editor"),
                  new XElement("FirstName", "PHP"),
                  new XElement("LastName", "Python"))));
            
            foreach (XNode node in firstParticipant.Nodes())
            {
              Console.WriteLine(node);
            }
    }
}

Result

Related Topic