Query Descendants And Self : XDocument « XML LINQ « C# / C Sharp






Query Descendants And Self

 

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

public class MainClass
{
    public static void Main()
    {

        string markup =
        @"<Root>
            <Child>
                <GrandChild/>
            </Child>
        </Root>";

        using (XmlReader nodeReader = XmlReader.Create(new StringReader(markup)))
        {
            nodeReader.MoveToContent();

            XDocument xRoot = XDocument.Load(nodeReader, LoadOptions.SetLineInfo);
            foreach (XElement e in xRoot.Elements("Root").DescendantsAndSelf())
                Console.WriteLine("{0}{1}{2}",
                    ("".PadRight(e.Ancestors().Count() * 2) + e.Name),
                    ((IXmlLineInfo)e).LineNumber,
                    ((IXmlLineInfo)e).LinePosition);
        }
    }
}

   
  








Related examples in the same category

1.Create XDocument from XmlReader
2.Query an XML document with Linq
3.Get Encoding, Version and standalone from XML declaration
4.Using the LINQ to XML API to Create an XML Document and Adding Some Structure
5.Creating an XML Document with XDocument
6.Intentionally Exposing the Halloween Problem
7.Saving a Document with the XDocument.Save Method
8.Loading a Document with the XDocument.Load Method with LoadOptions
9.Traversing Forward from an XElement Object via the NextNode Property
10.Add to First to XDocument
11.Add the CData to XDocument
12.Add a comment to XDocument
13.Add an attribute to the root node
14.Add the processing instruction
15.Add an element that uses the namespace
16.Define the namespace
17.Display XDocument
18.Create XDocument with XDeclaration and XElement
19.Load xml document with XDocument
20.Save the document where you need it
21.Create an Xml document in a Xml Linq way
22.Display the second namespace on screen
23.XDocument Class represents an XML document.
24.Create a new instance of the XDocument and add XComment and XElement
25.Passing XComment and XElement to XDocument
26.Create an XDocument class with the specified XDeclaration and content.
27.XDocument.Declaration gets or sets the XML declaration for this document.
28.XDocument.DocumentType gets the Document Type Definition (DTD) for this document.
29.Query Xml document by node type with Linq
30.XDocument.NodeType Property returns the node type for this node.
31.XDocument.Root Property returns the root element of the XML Tree for this document.
32.XDocument.WriteTo writes this document to an XmlWriter.