System.Xml.XmlDocumentType Class

Assembly: System.Xml.dll
Namespace: System.Xml
Summary
Represents the document type declaration.
C# Syntax:
public class XmlDocumentType : XmlLinkedNode
See also:
System.Xml Namespace

System.Xml.XmlDocumentType Member List:

Public Properties
Attributes
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.Attributes


Gets an XmlAttributeCollection containing the attributes of this node.
BaseURI
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.BaseURI


Gets the base URI of the current node.
ChildNodes
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.ChildNodes


Gets all the children of the node.
Entities Read-only

Gets the collection of XmlEntity nodes declared in the document type declaration.
FirstChild
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.FirstChild


Gets the first child of the node.
HasChildNodes
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.HasChildNodes


Gets a value indicating whether this node has any child nodes.
InnerText
(inherited from System.Xml.XmlNode)
Read-write

See base class member description: System.Xml.XmlNode.InnerText


Gets or sets the concatenated values of the node and all its children.
InnerXml
(inherited from System.Xml.XmlNode)
Read-write

See base class member description: System.Xml.XmlNode.InnerXml


Gets or sets the markup representing just the children of this node.
InternalSubset Read-only

Gets the value of the DTD internal subset on the DOCTYPE declaration.
IsReadOnly Read-only

Overridden:
Gets a value indicating whether the node is read-only.
Item
(inherited from System.Xml.XmlNode)
Read-only

Overloaded:
Item[string name] {get

See base class member description: System.Xml.XmlNode.Item


Gets the first child element with the specified XmlNode.Name.
Item
(inherited from System.Xml.XmlNode)
Read-only

Overloaded:
Item[string localname, string ns] {get

See base class member description: System.Xml.XmlNode.Item


Gets the first child element with the specified XmlNode.LocalName and XmlNode.NamespaceURI.
LastChild
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.LastChild


Gets the last child of the node.
LocalName Read-only

Overridden:
Gets the local name of the node.
Name Read-only

Overridden:
Gets the qualified name of the node.
NamespaceURI
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.NamespaceURI


Gets the namespace URI of this node.
NextSibling
(inherited from System.Xml.XmlLinkedNode)
Read-only

See base class member description: System.Xml.XmlLinkedNode.NextSibling


Gets the node immediately following this node.
NodeType Read-only

Overridden:
Gets the type of the current node.
Notations Read-only

Gets the collection of XmlNotation nodes present in the document type declaration.
OuterXml
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.OuterXml


Gets the markup representing this node and all its children.
OwnerDocument
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.OwnerDocument


Gets the XmlDocument to which this node belongs.
ParentNode
(inherited from System.Xml.XmlNode)
Read-only

See base class member description: System.Xml.XmlNode.ParentNode


Gets the parent of this node (for nodes that can have parents).
Prefix
(inherited from System.Xml.XmlNode)
Read-write

See base class member description: System.Xml.XmlNode.Prefix


Gets or sets the namespace prefix of this node.
PreviousSibling
(inherited from System.Xml.XmlLinkedNode)
Read-only

See base class member description: System.Xml.XmlLinkedNode.PreviousSibling


Gets the node immediately preceding this node.
PublicId Read-only

Gets the value of the public identifier on the DOCTYPE declaration.
SystemId Read-only

Gets the value of the system identifier on the DOCTYPE declaration.
Value
(inherited from System.Xml.XmlNode)
Read-write

See base class member description: System.Xml.XmlNode.Value


Gets or sets the value of the node.
Public Methods
AppendChild
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.AppendChild


Adds the specified node to the end of the list of children of this node.
Clone
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.Clone


Creates a duplicate of this node.
CloneNode Overridden:
Creates a duplicate of this node.
CreateNavigator
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.CreateNavigator


Creates an XPathNavigator for navigating this object.
Equals
(inherited from System.Object)
See base class member description: System.Object.Equals

Derived from System.Object, the primary base class for all objects.
GetEnumerator
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.GetEnumerator


Provides support for the for each style iteration over the nodes in the XmlNode.
GetHashCode
(inherited from System.Object)
See base class member description: System.Object.GetHashCode

Derived from System.Object, the primary base class for all objects.
GetNamespaceOfPrefix
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.GetNamespaceOfPrefix


Looks up the closest xmlns declaration for the given prefix that is in scope for the current node and returns the namespace URI in the declaration.
GetPrefixOfNamespace
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.GetPrefixOfNamespace


Looks up the closest xmlns declaration for the given namespace URI that is in scope for the current node and returns the prefix defined in that declaration.
GetType
(inherited from System.Object)
See base class member description: System.Object.GetType

Derived from System.Object, the primary base class for all objects.
InsertAfter
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.InsertAfter


Inserts the specified node immediately after the specified reference node.
InsertBefore
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.InsertBefore


Inserts the specified node immediately before the specified reference node.
Normalize
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.Normalize


Puts all XmlText nodes in the full depth of the sub-tree underneath this XmlNode into a "normal" form where only markup (that is, tags, comments, processing instructions, CDATA sections, and entity references) separates XmlText nodes, that is, there are no adjacent XmlText nodes.
PrependChild
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.PrependChild


Adds the specified node to the beginning of the list of children of this node.
RemoveAll
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.RemoveAll


Removes all the children and/or attributes of the current node.
RemoveChild
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.RemoveChild


Removes specified child node.
ReplaceChild
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.ReplaceChild


Replaces the child node oldChild with newChild node.
SelectNodes
(inherited from System.Xml.XmlNode)
Overloaded:
SelectNodes(string xpath)

See base class member description: System.Xml.XmlNode.SelectNodes


Selects a list of nodes matching the XPath expression.
SelectNodes
(inherited from System.Xml.XmlNode)
Overloaded:
SelectNodes(string xpath, XmlNamespaceManager nsmgr)

See base class member description: System.Xml.XmlNode.SelectNodes


Selects a list of nodes matching the XPath expression. Any prefixes found in the XPath expression are resolved using the supplied XmlNamespaceManager.
SelectSingleNode
(inherited from System.Xml.XmlNode)
Overloaded:
SelectSingleNode(string xpath)

See base class member description: System.Xml.XmlNode.SelectSingleNode


Selects the first XmlNode that matches the XPath expression.
SelectSingleNode
(inherited from System.Xml.XmlNode)
Overloaded:
SelectSingleNode(string xpath, XmlNamespaceManager nsmgr)

See base class member description: System.Xml.XmlNode.SelectSingleNode


Selects the first XmlNode that matches the XPath expression. Any prefixes found in the XPath expression are resolved using the supplied XmlNamespaceManager.
Supports
(inherited from System.Xml.XmlNode)
See base class member description: System.Xml.XmlNode.Supports


Test if the DOM implementation implements a specific feature.
ToString
(inherited from System.Object)
See base class member description: System.Object.ToString

Derived from System.Object, the primary base class for all objects.
WriteContentTo Overridden:
Saves all the children of the node to the specified XmlWriter. For XmlDocumentType nodes, this method has no effect.
WriteTo Overridden:
Saves the node to the specified XmlWriter.
Protected Constructors
ctor #1
Protected Methods
Finalize
(inherited from System.Object)
See base class member description: System.Object.Finalize

Derived from System.Object, the primary base class for all objects.
MemberwiseClone
(inherited from System.Object)
See base class member description: System.Object.MemberwiseClone

Derived from System.Object, the primary base class for all objects.

Hierarchy:


System.Xml.XmlDocumentType Member Details

ctor #1
Summary
This type supports the Shared Source CLI infrastructure and is not intended to be used directly from your code.
C# Syntax:
protected internal XmlDocumentType(
   string name,
   string publicId,
   string systemId,
   string internalSubset,
   XmlDocument doc
);
Parameters:

name

publicId

systemId

internalSubset

doc

Return to top


Property: Attributes (read-only)
Inherited
See base class member description: System.Xml.XmlNode.Attributes

Summary
Gets an XmlAttributeCollection containing the attributes of this node.
C# Syntax:
public virtual XmlAttributeCollection Attributes {get;}
Example
The following example adds a new attribute to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Create a new attribute.
    string ns = root.GetNamespaceOfPrefix("bk");
    XmlNode attr = doc.CreateNode(XmlNodeType.Attribute, "genre", ns);
    attr.Value = "novel";

    //Add the attribute to the document.
    root.Attributes.SetNamedItem(attr);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    

Return to top


Property: BaseURI (read-only)
Inherited
See base class member description: System.Xml.XmlNode.BaseURI

Summary
Gets the base URI of the current node.
C# Syntax:
public virtual string BaseURI {get;}
Remarks
A networked XML document is comprised of chunks of data aggregated using various W3C standard inclusion mechanisms and therefore contains nodes that come from different places. The BaseURI tells you where these nodes came from.

The value of this property varies depending on the node type. For example, Document nodes return the location of the XmlDocument object. Nodes which are children of external EntityReference nodes return the location of the entity itself. For example, consider the following XML document:

              <!DOCTYPE item [
               <!ENTITY bar SYSTEM "a/b.xml">
               ]>
               <item num='123'>&bar;</item>
                 
            

where the external entity a/b.xml contains the XML text: <test>123</test> .

If the document is loaded from http://server/mydata.xml , BaseURI returns the following:



NodeType Name BaseURI
Attribute num http://server/mydata.xml
Document #document http://server/mydata.xml
DocumentType item http://server/mydata.xml
Entity bar http://server/mydata.xml
Element item http://server/mydata.xml
EntityReference bar http://server/mydata.xml
Element test http://server/a/b.xml
Text #text http://server/a/b.xml

BaseURI looks for entity reference boundaries, so if entities are expanded this information is not preserved and this property returns the location of the XmlDocument object in all cases.

As a second example, given the following XML document:

              <!DOCTYPE Mydata SYSTEM "http://localhost/doctype.dtd">
              <baa>&bar;</baa>
            
where the DTD file contains the following:
              <!ENTITY bar <E1>My Data</E1>
              <!ELEMENT baa #PCDATA>
              <!ATTLIST baa attr1 "woof">
            

If the XML document is loaded from http://localhost/mydata.xml, BaseURI returns the following for each of the nodes:



NodeType Name BaseURI
Document #document http://localhost/mydata.xml
DocumentType Mydata http://localhost/doctype.dtd
Element baa http://localhost/mydata.xml
Entity bar http://localhost/doctype.dtd
EntityReference bar http://localhost/mydata.xml
Attribute woof http://localhost/mydata.xml


Note The base URI of a default attribute is the same as the base URI of the element to which they belong.

This property is a Microsoft extension to the Document Object Model (DOM).

Return to top


Property: ChildNodes (read-only)
Inherited
See base class member description: System.Xml.XmlNode.ChildNodes

Summary
Gets all the children of the node.
C# Syntax:
public virtual XmlNodeList ChildNodes {get;}
Example
The following example displays all the child nodes of the root element.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Display the contents of the child nodes.
    if (root.HasChildNodes)
    {
      for (int i=0; i<root.ChildNodes.Count; i++)
      {
        Console.WriteLine(root.ChildNodes[i].InnerText);
      }
    }
  }
}

    

Return to top


Property: Entities (read-only)
Summary
Gets the collection of XmlEntity nodes declared in the document type declaration.
C# Syntax:
public XmlNamedNodeMap Entities {get;}
Example
The following example displays information about the entities declared in the XML document.
using System;
using System.IO;
using System.Xml;
 
public class Sample
{
  private const String filename = "doment.xml";
 
  public static void Main()
  {      
     XmlDocument doc = new XmlDocument();
     doc.Load(filename);
 
     Console.WriteLine("Display information on all entities...");     
     XmlNamedNodeMap nMap = doc.DocumentType.Entities;
     DisplayEntities(nMap);
  }
 
  public static void DisplayEntities(XmlNamedNodeMap nMap)
  {    
     for (int i=0; i < nMap.Count; i++)
     {
        XmlEntity ent = (XmlEntity) nMap.Item(i);
        Console.Write("{0} ", ent.NodeType);
        Console.Write("{0} ", ent.Name);
        Console.Write("{0} ", ent.NotationName);
        Console.Write("{0} ", ent.PublicId);
        Console.Write("{0} ", ent.SystemId);
        Console.WriteLine();
     }
  }
}

    

The example uses the file, doment.xml, as input.

<!DOCTYPE doc [

  <!ELEMENT doc ANY>
 
  <!NOTATION w SYSTEM "wine.exe">
  <!NOTATION v PUBLIC "vine.exe">

  <!NOTATION jpg PUBLIC "Jpeg picture format">
  <!NOTATION gif SYSTEM "Gif picture format">

  <!ENTITY wn PUBLIC "http://www.cohowinery.com" "coho.exe" NDATA w>
  <!ENTITY vn SYSTEM "http://www.cohovineyard.com" NDATA v>
  <!ENTITY mytxt "Text Sample">

  <!ATTLIST doc 
        src     ENTITY         #IMPLIED
        srcs    ENTITIES       #IMPLIED
        jpgPic  NOTATION (jpg) #IMPLIED
        gifPic  NOTATION (gif) #REQUIRED>
]>

<doc jpgPic="jpg" gifPic="gif" srcs="vn wn">
    something
</doc>

    

Return to top


Property: FirstChild (read-only)
Inherited
See base class member description: System.Xml.XmlNode.FirstChild

Summary
Gets the first child of the node.
C# Syntax:
public virtual XmlNode FirstChild {get;}
Example
The following example displays the title element.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    Console.WriteLine("Display the title element...");
    Console.WriteLine(root.FirstChild.OuterXml);
  }
}

    

Return to top


Property: HasChildNodes (read-only)
Inherited
See base class member description: System.Xml.XmlNode.HasChildNodes

Summary
Gets a value indicating whether this node has any child nodes.
C# Syntax:
public virtual bool HasChildNodes {get;}
Example
The following example displays all the child nodes of the root element.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Display the contents of the child nodes.
    if (root.HasChildNodes)
    {
      for (int i=0; i<root.ChildNodes.Count; i++)
      {
        Console.WriteLine(root.ChildNodes[i].InnerText);
      }
    }
  }
}

    

Return to top


Property: InnerText (read-write)
Inherited
See base class member description: System.Xml.XmlNode.InnerText

Summary
Gets or sets the concatenated values of the node and all its children.
C# Syntax:
public virtual string InnerText {get; set;}
Remarks
Setting this property replaces all the children with the parsed contents of the given string.

For leaf nodes, InnerText returns the same content as the XmlNode.Value property.

This property is a Microsoft extension to the Document Object Model (DOM).

Example
The following example compares the InnerText and XmlNode.InnerXml properties.
using System;
using System.Xml;
public class Test {

  public static void Main() {
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<root>"+
                "<elem>some text<child/>more text</elem>" +
                "</root>");

    XmlNode elem = doc.DocumentElement.FirstChild;

    //Note that InnerText does not include the markup.
    Console.WriteLine("Display the InnerText of the element...");
    Console.WriteLine( elem.InnerText );

    //InnerXml includes the element's markup.
    Console.WriteLine("Display the InnerXml of the element...");
    Console.WriteLine(elem.InnerXml);

    //Set InnerText to a string that includes markup.  
    //The markup is entitized.
    elem.InnerText = "Text containing <markup/> will have char(<) and char(>) entitized.";
    Console.WriteLine( elem.OuterXml );

    //Set InnerXml to a string that includes markup.  
    //The markup is not entitized.
    elem.InnerXml = "Text containing <markup/>.";
    Console.WriteLine( elem.OuterXml );
  }
}

    

Return to top


Property: InnerXml (read-write)
Inherited
See base class member description: System.Xml.XmlNode.InnerXml

Summary
Gets or sets the markup representing just the children of this node.
C# Syntax:
public virtual string InnerXml {get; set;}
Remarks
Attempting to set this property from a node that cannot have children, for example a Text node, throws an exception. Otherwise, setting InnerXml replaces the children of the node with the parsed contents of the given string. The parsing is done in the current namespace context.

This property is a Microsoft extension to the Document Object Model (DOM).

Example
The following example compares the XmlNode.InnerText and InnerXml properties.
using System;
using System.Xml;
public class Test {

  public static void Main() {
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<root>"+
                "<elem>some text<child/>more text</elem>" +
                "</root>");

    XmlNode elem = doc.DocumentElement.FirstChild;

    //Note that InnerText does not include the markup.
    Console.WriteLine("Display the InnerText of the element...");
    Console.WriteLine( elem.InnerText );

    //InnerXml includes the element's markup.
    Console.WriteLine("Display the InnerXml of the element...");
    Console.WriteLine(elem.InnerXml);

    //Set InnerText to a string that includes markup.  
    //The markup is entitized.
    elem.InnerText = "Text containing <markup/> will have char(<) and char(>) entitized.";
    Console.WriteLine( elem.OuterXml );

    //Set InnerXml to a string that includes markup.  
    //The markup is not entitized.
    elem.InnerXml = "Text containing <markup/>.";
    Console.WriteLine( elem.OuterXml );
  }
}

    

Return to top


Property: InternalSubset (read-only)
Summary
Gets the value of the DTD internal subset on the DOCTYPE declaration.
C# Syntax:
public string InternalSubset {get;}
Example
The following example displays information about the DocumentType node.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" +
                "<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<style>&h;</style>" +
                "</book>");

    //Display information on the DocumentType node.
    XmlDocumentType doctype = doc.DocumentType;
    Console.WriteLine("Name of the document type:  {0}", doctype.Name);
    Console.WriteLine("The internal subset of the document type:  {0}", doctype.InternalSubset);

  }
}

    

Return to top


Overridden Property: IsReadOnly (read-only)
Summary
Gets a value indicating whether the node is read-only.
C# Syntax:
public override bool IsReadOnly {get;}
Remarks
A read-only node is one whose properties, attributes, or children cannot be changed. However, you can remove a read-only node from the tree and insert it somewhere else.

You can remove a XmlDocumentType from a document and reinsert it back into the document as long as the document does not have an element node. Once a document has a root element, its XmlDocumentType cannot be changed.

This property is a Microsoft extension to the Document Object Model (DOM).

Example
The following example displays information about the DocumentType node.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" +
                "<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<style>&h;</style>" +
                "</book>");

    //Check if the node is read-only.
    if (doc.DocumentType.IsReadOnly)
       Console.WriteLine("Document type nodes are always read-only");

  }
}

    

Return to top


Overloaded Property: Item (read-only)
Inherited
See base class member description: System.Xml.XmlNode.Item

Summary
Gets the first child element with the specified XmlNode.Name.
C# Syntax:
public virtual XmlElement this[string name] {get;}
Parameters:

name

The qualified name of the element to retrieve

Remarks
This property is a Microsoft extension to the Document Object Model (DOM).
Example
The following example displays the title element.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    Console.WriteLine("Display the title element...");
    Console.WriteLine(root["title"].OuterXml);
  }
}

    

Return to top


Overloaded Property: Item (read-only)
Inherited
See base class member description: System.Xml.XmlNode.Item

Summary
Gets the first child element with the specified XmlNode.LocalName and XmlNode.NamespaceURI.
C# Syntax:
public virtual XmlElement this[string localname, string ns] {get;}
Parameters:

localname

The local name of the element.

ns

The namespace URI of the element.

Remarks
This property is a Microsoft extension to the Document Object Model (DOM).

Return to top


Property: LastChild (read-only)
Inherited
See base class member description: System.Xml.XmlNode.LastChild

Summary
Gets the last child of the node.
C# Syntax:
public virtual XmlNode LastChild {get;}
Example
The following example displays the price element.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    Console.WriteLine("Display the price element...");
    Console.WriteLine(root.LastChild.OuterXml);
  }
}

    

Return to top


Overridden Property: LocalName (read-only)
Summary
Gets the local name of the node.
C# Syntax:
public override string LocalName {get;}

Return to top


Overridden Property: Name (read-only)
Summary
Gets the qualified name of the node.
C# Syntax:
public override string Name {get;}
Example
The following example displays information about the DocumentType node.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" +
                "<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<style>&h;</style>" +
                "</book>");

    //Display information on the DocumentType node.
    XmlDocumentType doctype = doc.DocumentType;
    Console.WriteLine("Name of the document type:  {0}", doctype.Name);
    Console.WriteLine("The internal subset of the document type:  {0}", doctype.InternalSubset);

  }
}

    

Return to top


Property: NamespaceURI (read-only)
Inherited
See base class member description: System.Xml.XmlNode.NamespaceURI

Summary
Gets the namespace URI of this node.
C# Syntax:
public virtual string NamespaceURI {get;}
Remarks
This is the namespace URI specified at creation time. For example, NamespaceURI is urn:samples for the element <bk:book xmlns:bk= "urn:samples">

An attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace.

Return to top


Property: NextSibling (read-only)
Inherited
See base class member description: System.Xml.XmlLinkedNode.NextSibling

Summary
Gets the node immediately following this node.
C# Syntax:
public override XmlNode NextSibling {get;}
Example
The following example displays the first two book nodes.
 using System;
 using System.IO;
 using System.Xml;
 
 public class Sample
 {
   public static void Main()
   {

      XmlDocument doc = new XmlDocument();
      doc.Load("books.xml");
 
      // Display the first two book nodes.
      XmlNode book = doc.DocumentElement.FirstChild;
      Console.WriteLine(book.OuterXml);
      Console.WriteLine();
      Console.WriteLine(book.NextSibling.OuterXml);
 
   }
 }

    
See also:
XmlLinkedNode.PreviousSibling

Return to top


Overridden Property: NodeType (read-only)
Summary
Gets the type of the current node.
C# Syntax:
public override XmlNodeType NodeType {get;}
See also:
XmlNodeType

Return to top


Property: Notations (read-only)
Summary
Gets the collection of XmlNotation nodes present in the document type declaration.
C# Syntax:
public XmlNamedNodeMap Notations {get;}
Example
The following example displays information about the notations declared in the XML document.
using System;
using System.IO;
using System.Xml;
 
public class Sample
{
  private const String filename = "doment.xml";
 
  public static void Main()
  {      
    XmlDocument doc = new XmlDocument();
    doc.Load(filename);

    Console.WriteLine("Display information on all notations...");     
    XmlNamedNodeMap nMap = doc.DocumentType.Notations;
    DisplayNotations(nMap);      
  }
 
  public static void DisplayNotations(XmlNamedNodeMap nMap)
  {   
     for (int i=0; i < nMap.Count; i++)
     {
        XmlNotation note = (XmlNotation) nMap.Item(i);
        Console.Write("{0} ", note.NodeType);
        Console.Write("{0} ", note.Name);
        Console.Write("{0} ", note.PublicId);
        Console.Write("{0} ", note.SystemId);
        Console.WriteLine();
    }
  }            
}

    
The example uses the file, doment.xml, as input.
<!DOCTYPE doc [

  <!ELEMENT doc ANY>
 
  <!NOTATION w SYSTEM "wine.exe">
  <!NOTATION v PUBLIC "vine.exe">

  <!NOTATION jpg PUBLIC "Jpeg picture format">
  <!NOTATION gif SYSTEM "Gif picture format">

  <!ENTITY wn PUBLIC "http://www.cohowinery.com" "coho.exe" NDATA w>
  <!ENTITY vn SYSTEM "http://www.cohovineyard.com" NDATA v>
  <!ENTITY mytxt "Text Sample">

  <!ATTLIST doc 
        src     ENTITY         #IMPLIED
        srcs    ENTITIES       #IMPLIED
        jpgPic  NOTATION (jpg) #IMPLIED
        gifPic  NOTATION (gif) #REQUIRED>
]>

<doc jpgPic="jpg" gifPic="gif" srcs="vn wn">
    something
</doc>

    
See also:
XmlNotation | XmlNamedNodeMap

Return to top


Property: OuterXml (read-only)
Inherited
See base class member description: System.Xml.XmlNode.OuterXml

Summary
Gets the markup representing this node and all its children.
C# Syntax:
public virtual string OuterXml {get;}
Remarks
This property is a Microsoft extension to the Document Object Model (DOM).
Example
The following example compares output from the XmlNode.InnerXml and OuterXml properties.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //OuterXml includes the markup of current node.
    Console.WriteLine("Display the OuterXml property...");
    Console.WriteLine(root.OuterXml);
            
    //InnerXml does not include the markup of the current node.
    //As a result, the attributes are not displayed.
    Console.WriteLine();
    Console.WriteLine("Display the InnerXml property...");
    Console.WriteLine(root.InnerXml);
           
    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    

Return to top


Property: OwnerDocument (read-only)
Inherited
See base class member description: System.Xml.XmlNode.OwnerDocument

Summary
Gets the XmlDocument to which this node belongs.
C# Syntax:
public virtual XmlDocument OwnerDocument {get;}
Remarks
When adding nodes to the current node, use the XmlDocument returned by the XmlNode.OwnerDocument property to create the node.
Example
See XmlElement.OwnerDocument (in the XmlElement class) for an example using this property.

Return to top


Property: ParentNode (read-only)
Inherited
See base class member description: System.Xml.XmlNode.ParentNode

Summary
Gets the parent of this node (for nodes that can have parents).
C# Syntax:
public virtual XmlNode ParentNode {get;}

Return to top


Property: Prefix (read-write)
Inherited
See base class member description: System.Xml.XmlNode.Prefix

Summary
Gets or sets the namespace prefix of this node.
C# Syntax:
public virtual string Prefix {get; set;}
Exceptions
Exception Type Condition
ArgumentException This node is read-only
XmlException The specified prefix contains an illegal character

The specified prefix is malformed.

The specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace".

This node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/."

This node is an attribute and the qualifiedName of this node is "xmlns".

Remarks
Setting this property, when permitted, changes the XmlNode.Name property, which holds the qualified name, on Element and Attribute nodes. Setting this property on node types that cannot have a prefix (such as Text, Comment, EntityReference, CDATA, ProcessingInstruction, Document, and DocumentFragment) has no effect. Changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespace URI and local name do not change.

Notes to inheritors: When overriding Prefix in a derived class, this property will not be settable.

Return to top


Property: PreviousSibling (read-only)
Inherited
See base class member description: System.Xml.XmlLinkedNode.PreviousSibling

Summary
Gets the node immediately preceding this node.
C# Syntax:
public override XmlNode PreviousSibling {get;}
See also:
XmlLinkedNode.NextSibling

Return to top


Property: PublicId (read-only)
Summary
Gets the value of the public identifier on the DOCTYPE declaration.
C# Syntax:
public string PublicId {get;}

Return to top


Property: SystemId (read-only)
Summary
Gets the value of the system identifier on the DOCTYPE declaration.
C# Syntax:
public string SystemId {get;}

Return to top


Property: Value (read-write)
Inherited
See base class member description: System.Xml.XmlNode.Value

Summary
Gets or sets the value of the node.
C# Syntax:
public virtual string Value {get; set;}
Exceptions
Exception Type Condition
ArgumentException The node is read-only.
InvalidOperationException The node is not supposed to have a value (for example, an Element node).

Return to top


Method: AppendChild(
   XmlNode newChild
)
Inherited
See base class member description: System.Xml.XmlNode.AppendChild

Summary
Adds the specified node to the end of the list of children of this node.
C# Syntax:
public virtual XmlNode AppendChild(
   XmlNode newChild
);
Parameters:

newChild

The node to add. If it is a XmlDocumentFragment, the entire contents of the document fragment are moved into the child list of this node.

Return Value:
The node added.
Exceptions
Exception Type Condition
InvalidOperationException This node is of a type that does not allow children of the type of the newChild node. Or the node to be added is one of this node's ancestors.
ArgumentException The newChild was created from a different document than the one that created this node.

This node is read-only.

Remarks
If the newChild is already in the tree, it is first removed.

Notes to inheritors: When overriding AppendChild in a derived class, in order for events to be fired correctly, you must call the base class's AppendChild method.
Example
The following example adds a new node to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Create a new node.
    XmlElement elem = doc.CreateElement("price");
    elem.InnerText="19.95";

    //Add the node to the document.
    root.AppendChild(elem);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    
See also:
XmlDocument.ImportNode

Return to top


Method: Clone()
Inherited
See base class member description: System.Xml.XmlNode.Clone

Summary
Creates a duplicate of this node.
C# Syntax:
public virtual XmlNode Clone();
Return Value:
The cloned node.
Remarks
Cloning an XmlElement copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes. This method recursively clones the node and the subtree underneath it.

Clone is equivalent to calling CloneNode(true) .

This method is a Microsoft extension to the Document Object Model (DOM).

Example
The following example clones the root node of the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Clone the root node.  The cloned node includes
    //child nodes. This is similar to calling CloneNode(true).
    XmlNode clone = root.Clone();
    Console.WriteLine(clone.OuterXml);
  }
}

    
See also:
XmlNode.CloneNode

Return to top


Overridden Method: CloneNode(
   bool deep
)
Summary
Creates a duplicate of this node.
C# Syntax:
public override XmlNode CloneNode(
   bool deep
);
Parameters:

deep

true to recursively clone the subtree under the specified node; false to clone only the node itself. For document type nodes, the cloned node always includes the subtree, regardless of the parameter setting.

Return Value:
The cloned node.
Remarks
This method serves as a copy constructor for nodes. The cloned node has no parent ( XmlNode.ParentNode returns null).

To see how this method behaves with other node types, see XmlNode.CloneNode.

Return to top


Method: CreateNavigator()
Inherited
See base class member description: System.Xml.XmlNode.CreateNavigator

Summary
Creates an XPathNavigator for navigating this object.
C# Syntax:
public XPathNavigator CreateNavigator();
Return Value:
An XPathNavigator object. The XPathNavigator is positioned on the node from which the method was called. It is not positioned on the root of the document.
Implements:
IXPathNavigable.CreateNavigator
Remarks
The XPathNavigator provides read-only, random access to data. Because it is optimized for XSLT transformations, it provides performance benefits when used as an input mechanism to the XslTransform.Transform method.

This method is a Microsoft extension to the Document Object Model (DOM).

Example
The following example loads and edits an XML document before performing an XSLT transform.
  XmlDocument doc = new XmlDocument();
  doc.Load("books.xml");

  // Modify the XML file.
  XmlElement root = doc.DocumentElement;
  root.FirstChild.LastChild.InnerText = "12.95";

  // Create an XPathNavigator to use for the transform.
  XPathNavigator nav = root.CreateNavigator();
  
  // Transform the file.
  XslTransform xslt = new XslTransform();
  xslt.Load("output.xsl");
  XmlTextWriter writer = new XmlTextWriter("books.html", null);
  xslt.Transform(nav, null, writer);

    
See also:
XslTransform

Return to top


Method: Equals(
   object obj
)
Inherited
See base class member description: System.Object.Equals
C# Syntax:
public virtual bool Equals(
   object obj
);

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Finalize()
Inherited
See base class member description: System.Object.Finalize
C# Syntax:
~XmlDocumentType();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetEnumerator()
Inherited
See base class member description: System.Xml.XmlNode.GetEnumerator

Summary
Provides support for the for each style iteration over the nodes in the XmlNode.
C# Syntax:
public IEnumerator GetEnumerator();
Return Value:
An IEnumerator.
Remarks
This method is a Microsoft extension to the Document Object Model (DOM).
Example
The following example displays all the books in the XML document.


using System;
using System.Collections;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    XmlDocument doc = new XmlDocument();
    doc.Load("books.xml");

    Console.WriteLine("Display all the books...");
    XmlNode root = doc.DocumentElement;
    IEnumerator ienum = root.GetEnumerator();
    XmlNode book;
    while (ienum.MoveNext()) 
    {     
      book = (XmlNode) ienum.Current;
      Console.WriteLine(book.OuterXml);
      Console.WriteLine();
    }

  }
}

    

The example uses the file, books.xml, as input.


<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

    

Return to top


Method: GetHashCode()
Inherited
See base class member description: System.Object.GetHashCode
C# Syntax:
public virtual int GetHashCode();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: GetNamespaceOfPrefix(
   string prefix
)
Inherited
See base class member description: System.Xml.XmlNode.GetNamespaceOfPrefix

Summary
Looks up the closest xmlns declaration for the given prefix that is in scope for the current node and returns the namespace URI in the declaration.
C# Syntax:
public virtual string GetNamespaceOfPrefix(
   string prefix
);
Parameters:

prefix

Prefix whose namespace URI you want to find

Return Value:
The namespace URI of the specified prefix.
Remarks
This method is a Microsoft extension to the Document Object Model (DOM).
Example
The following example adds a new attribute to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Create a new attribute.
    string ns = root.GetNamespaceOfPrefix("bk");
    XmlNode attr = doc.CreateNode(XmlNodeType.Attribute, "genre", ns);
    attr.Value = "novel";

    //Add the attribute to the document.
    root.Attributes.SetNamedItem(attr);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    

Return to top


Method: GetPrefixOfNamespace(
   string namespaceURI
)
Inherited
See base class member description: System.Xml.XmlNode.GetPrefixOfNamespace

Summary
Looks up the closest xmlns declaration for the given namespace URI that is in scope for the current node and returns the prefix defined in that declaration.
C# Syntax:
public virtual string GetPrefixOfNamespace(
   string namespaceURI
);
Parameters:

namespaceURI

Namespace URI whose prefix you want to find

Return Value:
The prefix for the specified namespace URI.
Remarks
This method is a Microsoft extension to the Document Object Model (DOM).
Example
The following example adds a new element to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Create a new node.
    string prefix = root.GetPrefixOfNamespace("urn:samples");
    XmlElement elem = doc.CreateElement(prefix, "style", "urn:samples");
    elem.InnerText = "hardcover";

    //Add the node to the document.
    root.AppendChild(elem);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    

Return to top


Method: GetType()
Inherited
See base class member description: System.Object.GetType
C# Syntax:
public Type GetType();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: InsertAfter(
   XmlNode newChild,
   XmlNode refChild
)
Inherited
See base class member description: System.Xml.XmlNode.InsertAfter

Summary
Inserts the specified node immediately after the specified reference node.
C# Syntax:
public virtual XmlNode InsertAfter(
   XmlNode newChild,
   XmlNode refChild
);
Parameters:

newChild

The XmlNode to insert.

refChild

The XmlNode that is the reference node. The newNode is placed after the refNode.

Return Value:
The node being inserted.
Exceptions
Exception Type Condition
InvalidOperationException This node is of a type that does not allow children of the type of the newChild node. Or the node to insert is one of this node's ancestors.
ArgumentException The newChild was created from a different document than the one that created this node.

The refChild is not a child of this node.

This node is read-only.

Remarks
If refChild is null, insert newChild at the beginning of the list of children. If newChild is an XmlDocumentFragment object, its children are inserted, in the same order, after refChild. If the newChild is already in the tree, it is first removed.

This method is a Microsoft extension to the Document Object Model (DOM).



Notes to inheritors: When overriding InsertAfter in a derived class, in order for events to be fired correctly, you must call the base class's InsertAfter method.
Example
The following example adds a new node to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Create a new node.
    XmlElement elem = doc.CreateElement("price");
    elem.InnerText="19.95";

    //Add the node to the document.
    root.InsertAfter(elem, root.FirstChild);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    
See also:
XmlDocument.ImportNode

Return to top


Method: InsertBefore(
   XmlNode newChild,
   XmlNode refChild
)
Inherited
See base class member description: System.Xml.XmlNode.InsertBefore

Summary
Inserts the specified node immediately before the specified reference node.
C# Syntax:
public virtual XmlNode InsertBefore(
   XmlNode newChild,
   XmlNode refChild
);
Parameters:

newChild

The XmlNode to insert.

refChild

The XmlNode that is the reference node. The newChild is placed before this node.

Return Value:
The node being inserted.
Exceptions
Exception Type Condition
InvalidOperationException The current node is of a type that does not allow children of the type of the newChild node. Or the node to insert is an ancestor of this node.
ArgumentException The newChild was created from a different document than the one that created this node.

The refChild is not a child of this node.

This node is read-only.

Remarks
If refChild is null, insert newChild at the end of the list of children. If newChild is an XmlDocumentFragment object, its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed.

Notes to inheritors: When overriding InsertBefore in a derived class, in order for events to be fired correctly, you must call the base class's InsertBefore method.
Example
The following example adds a new node to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Create a new node.
    XmlElement elem = doc.CreateElement("price");
    elem.InnerText="19.95";

    //Add the node to the document.
    root.InsertBefore(elem, root.FirstChild);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    
See also:
XmlDocument.ImportNode

Return to top


Method: MemberwiseClone()
Inherited
See base class member description: System.Object.MemberwiseClone
C# Syntax:
protected object MemberwiseClone();

For more information on members inherited from System.Object click on the link above.

Return to top


Method: Normalize()
Inherited
See base class member description: System.Xml.XmlNode.Normalize

Summary
Puts all XmlText nodes in the full depth of the sub-tree underneath this XmlNode into a "normal" form where only markup (that is, tags, comments, processing instructions, CDATA sections, and entity references) separates XmlText nodes, that is, there are no adjacent XmlText nodes.
C# Syntax:
public virtual void Normalize();
Remarks
This method can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.

Return to top


Method: PrependChild(
   XmlNode newChild
)
Inherited
See base class member description: System.Xml.XmlNode.PrependChild

Summary
Adds the specified node to the beginning of the list of children of this node.
C# Syntax:
public virtual XmlNode PrependChild(
   XmlNode newChild
);
Parameters:

newChild

The node to add. If it is an XmlDocumentFragment, the entire contents of the document fragment are moved into the child list of this node.

Return Value:
The node added.
Exceptions
Exception Type Condition
InvalidOperationException This node is of a type that does not allow children of the type of the newChild node. Or the node to be added is one of this node's ancestors.
ArgumentException The newChild was created from a different document than the one that created this node. Or this node is read-only.
Remarks
If the newChild is already in the tree, it is first removed.

This method is a Microsoft extension to the Document Object Model (DOM).



Notes to inheritors: When overriding PrependChild in a derived class, in order for events to be fired correctly, you must call the base class's PrependChild method.
Example
The following example adds a new node to the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Create a new node.
    XmlElement elem = doc.CreateElement("price");
    elem.InnerText="19.95";

    //Add the node to the document.
    root.PrependChild(elem);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    
See also:
XmlDocument.ImportNode

Return to top


Method: RemoveAll()
Inherited
See base class member description: System.Xml.XmlNode.RemoveAll

Summary
Removes all the children and/or attributes of the current node.
C# Syntax:
public virtual void RemoveAll();
Remarks
If a removed attribute is known to have a default value, an attribute immediately appears containing the default value and, if applicable, the corresponding namespace URI, local name, and prefix.

This method is a Microsoft extension to the Document Object Model (DOM).



Notes to inheritors: When overriding RemoveAll in a derived class, in order for events to be fired correctly, you must call the base class's RemoveAll method.
Example
The following example removes all child and attribute nodes from the root node.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Remove all attribute and child nodes.
    root.RemoveAll();

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    

Return to top


Method: RemoveChild(
   XmlNode oldChild
)
Inherited
See base class member description: System.Xml.XmlNode.RemoveChild

Summary
Removes specified child node.
C# Syntax:
public virtual XmlNode RemoveChild(
   XmlNode oldChild
);
Parameters:

oldChild

The node being removed.

Return Value:
The node removed.
Exceptions
Exception Type Condition
ArgumentException The oldChild is not a child of this node. Or this node is read-only.
Remarks


Notes to inheritors: When overriding RemoveChild in a derived class, in order for events to be fired correctly, you must call the base class's RemoveChild method.
Example
The following example removes a node from the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Remove the title element.
    root.RemoveChild(root.FirstChild);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    

Return to top


Method: ReplaceChild(
   XmlNode newChild,
   XmlNode oldChild
)
Inherited
See base class member description: System.Xml.XmlNode.ReplaceChild

Summary
Replaces the child node oldChild with newChild node.
C# Syntax:
public virtual XmlNode ReplaceChild(
   XmlNode newChild,
   XmlNode oldChild
);
Parameters:

newChild

The new node to put in the child list.

oldChild

The node being replaced in the list.

Return Value:
The node replaced.
Exceptions
Exception Type Condition
InvalidOperationException This node is of a type that does not allow children of the type of the newChild node. Or the node to put in is one of this node's ancestors.
ArgumentException The newChild was created from a different document than the one that created this node.

This node is read-only.

The oldChild is not a child of this node.

Remarks
If the newChild is already in the tree, it is first removed.

Notes to inheritors: When overriding ReplaceChild in a derived class, in order for events to be fired correctly, you must call the base class's ReplaceChild method.
Example
The following example replaces the title element in the XML document.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    XmlNode root = doc.DocumentElement;

    //Create a new title element.
    XmlElement elem = doc.CreateElement("title");
    elem.InnerText="The Handmaid's Tale";

    //Replace the title element.
    root.ReplaceChild(elem, root.FirstChild);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

    
See also:
XmlDocument.ImportNode

Return to top


Overloaded Method: SelectNodes(
   string xpath
)
Inherited
See base class member description: System.Xml.XmlNode.SelectNodes

Summary
Selects a list of nodes matching the XPath expression.
C# Syntax:
public XmlNodeList SelectNodes(
   string xpath
);
Parameters:

xpath

The XPath expression.

Return Value:
An XmlNodeList containing a collection of nodes matching the XPath query.
Exceptions
Exception Type Condition
XPathException The XPath expression contains a prefix.
Remarks
If the XPath expression requires namespace resolution, you must use the SelectNodes overload which takes an XmlNamespaceManager as its argument. The XmlNamespaceManager is used to resolve namespaces.

Note If the XPath expression does not include a prefix, it is assumed that the namespace URI is the empty namespace. If your XML includes a default namespace, you must still use the XmlNamespaceManager and add a prefix and namespace URI to it; otherwise, you will not get any nodes selected.

This method is a Microsoft extension to the Document Object Model (DOM).

Example
The following example changes the price on all books by Jane Austen.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

    XmlDocument doc = new XmlDocument();
    doc.Load("booksort.xml");

    XmlNodeList nodeList;
    XmlNode root = doc.DocumentElement;

    nodeList=root.SelectNodes("descendant::book[author/last-name='Austen']");
 
    //Change the price on the books.
    foreach (XmlNode book in nodeList)
    {
      book.LastChild.InnerText="15.95";
    }

    Console.WriteLine("Display the modified XML document....");
    doc.Save(Console.Out);
    
  }
}

    

The example uses the file, booksort.xml, as input.


<?xml version="1.0"?>
<!-- a fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
  <book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
    <title>Pride And Prejudice</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>24.95</price>
  </book>
  <book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
    <title>The Handmaid's Tale</title>
    <author>
      <first-name>Margaret</first-name>
      <last-name>Atwood</last-name>
    </author>
    <price>29.95</price>
  </book>
  <book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
    <title>Emma</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
  <book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
    <title>Sense and Sensibility</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
</bookstore>

    
See also:
XmlNode.SelectSingleNode

Return to top


Overloaded Method: SelectNodes(
   string xpath,
   XmlNamespaceManager nsmgr
)
Inherited
See base class member description: System.Xml.XmlNode.SelectNodes

Summary
Selects a list of nodes matching the XPath expression. Any prefixes found in the XPath expression are resolved using the supplied XmlNamespaceManager.
C# Syntax:
public XmlNodeList SelectNodes(
   string xpath,
   XmlNamespaceManager nsmgr
);
Parameters:

xpath

The XPath expression.

nsmgr

An XmlNamespaceManager to use for resolving namespaces for prefixes in the XPath expression.

Return Value:
An XmlNodeList containing a collection of nodes matching the XPath query.
Exceptions
Exception Type Condition
XPathException The XPath expression contains a prefix which is not defined in the XmlNamespaceManager.
Remarks
XPath expressions can include namespaces. Namespace resolution is supported using the XmlNamespaceManager. If the XPath expression includes a prefix, the prefix and namespace URI pair must be added to the XmlNamespaceManager.

Note If the XPath expression does not include a prefix, it is assumed that the namespace URI is the empty namespace. If your XML includes a default namespace, you must still add a prefix and namespace URI to the XmlNamespaceManager; otherwise, you will not get any nodes selected.

For example, if you had the following XML:

              <bookstore xmlns="http://www.lucernepublishing.com">
               <book>
                 <title>Pride And Prejudice</title>
               </book>
              </bookstore>
                 
            

The following C# code selects all book nodes:

              XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
              nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
              XmlNodeList nodelist = doc.SelectNodes("//ab:book", nsmgr);
                 
            

This method is a Microsoft extension to the Document Object Model (DOM).

Example
The following example displays the values of each of the ISBN attributes.
using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

      XmlDocument doc = new XmlDocument();
      doc.Load("booksort.xml");

      //Create an XmlNamespaceManager for resolving namespaces.
      XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
      nsmgr.AddNamespace("bk", "urn:samples");

      //Select and display the value of all the ISBN attributes.
      XmlNodeList nodeList;
      XmlElement root = doc.DocumentElement;
      nodeList = root.SelectNodes("/bookstore/book/@bk:ISBN", nsmgr);
      foreach (XmlNode isbn in nodeList){
        Console.WriteLine(isbn.Value);
      }

   }

}

    
The example uses the file, booksort.xml, as input.

<?xml version="1.0"?>
<!-- a fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
  <book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
    <title>Pride And Prejudice</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>24.95</price>
  </book>
  <book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
    <title>The Handmaid's Tale</title>
    <author>
      <first-name>Margaret</first-name>
      <last-name>Atwood</last-name>
    </author>
    <price>29.95</price>
  </book>
  <book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
    <title>Emma</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
  <book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
    <title>Sense and Sensibility</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
</bookstore>

    

Return to top


Overloaded Method: SelectSingleNode(
   string xpath
)
Inherited
See base class member description: System.Xml.XmlNode.SelectSingleNode

Summary
Selects the first XmlNode that matches the XPath expression.
C# Syntax:
public XmlNode SelectSingleNode(
   string xpath
);
Parameters:

xpath

The XPath expression.

Return Value:
The first XmlNode that matches the XPath query or null if no matching node was found.
Exceptions
Exception Type Condition
XPathException The XPath expression contains a prefix.
Remarks
If the XPath expression requires namespace resolution, you must use the SelectSingleNode overload which takes an XmlNamespaceManager as its argument. The XmlNamespaceManager is used to resolve namespaces.

Note If the XPath expression does not include a prefix, it is assumed that the namespace URI is the empty namespace. If your XML includes a default namespace, you must still use the XmlNamespaceManager and add a prefix and namespace URI to it; otherwise, you will not get a selected node.

This method is a Microsoft extension to the Document Object Model (DOM).

Example
The following example changes the price of the first Jane Austen book.


using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    XmlDocument doc = new XmlDocument();
    doc.Load("booksort.xml");

    XmlNode book;
    XmlNode root = doc.DocumentElement;

    book=root.SelectSingleNode("descendant::book[author/last-name='Austen']");
 
    //Change the price on the book.
    book.LastChild.InnerText="15.95";

    Console.WriteLine("Display the modified XML document....");
    doc.Save(Console.Out);    
  }
}

    
The example uses the file, booksort.xml, as input.

<?xml version="1.0"?>
<!-- a fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
  <book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
    <title>Pride And Prejudice</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>24.95</price>
  </book>
  <book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
    <title>The Handmaid's Tale</title>
    <author>
      <first-name>Margaret</first-name>
      <last-name>Atwood</last-name>
    </author>
    <price>29.95</price>
  </book>
  <book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
    <title>Emma</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
  <book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
    <title>Sense and Sensibility</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
</bookstore>

    
See also:
XmlNode.SelectNodes

Return to top


Overloaded Method: SelectSingleNode(
   string xpath,
   XmlNamespaceManager nsmgr
)
Inherited
See base class member description: System.Xml.XmlNode.SelectSingleNode

Summary
Selects the first XmlNode that matches the XPath expression. Any prefixes found in the XPath expression are resolved using the supplied XmlNamespaceManager.
C# Syntax:
public XmlNode SelectSingleNode(
   string xpath,
   XmlNamespaceManager nsmgr
);
Parameters:

xpath

The XPath expression.

nsmgr

An XmlNamespaceManager to use for resolving namespaces for prefixes in the XPath expression.

Return Value:
The first XmlNode that matches the XPath query or null if no matching node was found.
Exceptions
Exception Type Condition
XPathException The XPath expression contains a prefix which is not defined in the XmlNamespaceManager.
Remarks
XPath expressions can include namespaces. Namespace resolution is supported using the XmlNamespaceManager. If the XPath expression includes a prefix, the prefix and namespace URI pair must be added to the XmlNamespaceManager.

Note If the XPath expression does not include a prefix, it is assumed that the namespace URI is the empty namespace. If your XML includes a default namespace, you must still add a prefix and namespace URI to the XmlNamespaceManager; otherwise, you will not get a node selected.

For example, if you had the following XML:

              <bookstore xmlns="http://www.lucernepublishing.com">
               <book>
                 <title>Pride And Prejudice</title>
               </book>
              </bookstore>
                 
            

The following C# code selects the first book node:

              XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
              nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
              XmlNode book = doc.SelectSingleNode("//ab:book", nsmgr);
                 
            

This method is a Microsoft extension to the Document Object Model (DOM).

Example
The following example selects the book with the matching ISBN value.
using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {

      XmlDocument doc = new XmlDocument();
      doc.Load("booksort.xml");

      //Create an XmlNamespaceManager for resolving namespaces.
      XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
      nsmgr.AddNamespace("bk", "urn:samples");

      //Select the book node with the matching attribute value.
      XmlNode book;
      XmlElement root = doc.DocumentElement;
      book = root.SelectSingleNode("descendant::book[@bk:ISBN='1-861001-57-6']", nsmgr);

      Console.WriteLine(book.OuterXml);

  }
}

    
The example uses the file, booksort.xml, as input.

<?xml version="1.0"?>
<!-- a fragment of a book store inventory database -->
<bookstore xmlns:bk="urn:samples">
  <book genre="novel" publicationdate="1997" bk:ISBN="1-861001-57-8">
    <title>Pride And Prejudice</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>24.95</price>
  </book>
  <book genre="novel" publicationdate="1992" bk:ISBN="1-861002-30-1">
    <title>The Handmaid's Tale</title>
    <author>
      <first-name>Margaret</first-name>
      <last-name>Atwood</last-name>
    </author>
    <price>29.95</price>
  </book>
  <book genre="novel" publicationdate="1991" bk:ISBN="1-861001-57-6">
    <title>Emma</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
  <book genre="novel" publicationdate="1982" bk:ISBN="1-861001-45-3">
    <title>Sense and Sensibility</title>
    <author>
      <first-name>Jane</first-name>
      <last-name>Austen</last-name>
    </author>
    <price>19.95</price>
  </book>
</bookstore>

    

Return to top


Method: Supports(
   string feature,
   string version
)
Inherited
See base class member description: System.Xml.XmlNode.Supports

Summary
Test if the DOM implementation implements a specific feature.
C# Syntax:
public virtual bool Supports(
   string feature,
   string version
);
Parameters:

feature

The package name of the feature to test. This name is case-insensitive.

version

This is the version number of the package name to test. If the version is not specified (null), supporting any version of the feature will cause the method to return true.

Return Value:
true if the feature is implemented in the specified version; otherwise, false. The following table describes the combinations that return true.

Feature Version
XML 1.0
XML 2.0

Return to top


Method: ToString()
Inherited
See base class member description: System.Object.ToString
C# Syntax:
public virtual string ToString();

For more information on members inherited from System.Object click on the link above.

Return to top


Overridden Method: WriteContentTo(
   XmlWriter w
)
Summary
Saves all the children of the node to the specified XmlWriter. For XmlDocumentType nodes, this method has no effect.
C# Syntax:
public override void WriteContentTo(
   XmlWriter w
);
Parameters:

w

The XmlWriter to which you want to save.

Return to top


Overridden Method: WriteTo(
   XmlWriter w
)
Summary
Saves the node to the specified XmlWriter.
C# Syntax:
public override void WriteTo(
   XmlWriter w
);
Parameters:

w

The XmlWriter to which you want to save.

Return to top


Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.