XmlNodeType Enumeration
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Specifies the type of node.
Namespace: System.Xml
Assembly: System.Xml (in System.Xml.dll)
Syntax
'Declaration
Public Enumeration XmlNodeType
public enum XmlNodeType
Members
Member name | Description | |
---|---|---|
None | This is returned by the XmlReader if a Read method has not been called. | |
Element | An element (for example, <item>).
An Element node can have the following child node types: Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference. It can be the child of the Document, DocumentFragment, EntityReference, and Element nodes. |
|
Attribute | An attribute (for example, id='123').
An Attribute node can have the following child node types: Text and EntityReference. The Attribute node does not appear as the child node of any other node type. It is not considered a child node of an Element. |
|
Text | The text content of a node.
A Text node cannot have any child nodes. It can appear as the child node of the Attribute, DocumentFragment, Element, and EntityReference nodes. |
|
CDATA | A CDATA section (for example, <![CDATA[my escaped text]]>).
CDATA sections are used to escape blocks of text that would otherwise be recognized as markup. A CDATA node cannot have any child nodes. It can appear as the child of the DocumentFragment, EntityReference, and Element nodes. |
|
EntityReference | A reference to an entity (for example, #).
An EntityReference node can have the following child node types: Element, ProcessingInstruction, Comment, Text, CDATA, and EntityReference. It can appear as the child of the Attribute, DocumentFragment, Element, and EntityReference nodes. |
|
Entity | An entity declaration (for example, <!ENTITY...>).
An Entity node can have child nodes that represent the expanded entity (for example, Text and EntityReference nodes). It can appear as the child of the DocumentType node. |
|
ProcessingInstruction | A processing instruction (for example, <?pi test?>).
A ProcessingInstruction node cannot have any child nodes. It can appear as the child of the Document, DocumentFragment, Element, and EntityReference nodes. |
|
Comment | A comment (for example, <!-- my comment -->).
A Comment node cannot have any child nodes. It can appear as the child of the Document, DocumentFragment, Element, and EntityReference nodes. |
|
Document | A document object that, as the root of the document tree, provides access to the whole XML document.
A Document node can have the following child node types: XmlDeclaration, Element (maximum of one), ProcessingInstruction, Comment, and DocumentType. It cannot appear as the child of any node types. |
|
DocumentType | The document type declaration, indicated by the following tag (for example, <!DOCTYPE...>).
A DocumentType node can have the following child node types: Notation and Entity. It can appear as the child of the Document node. |
|
DocumentFragment | A document fragment.
The DocumentFragment node associates a node or subtree with a document without actually being contained in the document. A DocumentFragment node can have the following child node types: Element, ProcessingInstruction, Comment, Text, CDATA, and EntityReference. It cannot appear as the child of any node types. |
|
Notation | A notation in the document type declaration (for example, <!NOTATION...>).
A Notation node cannot have any child nodes. It can appear as the child of the DocumentType node. |
|
Whitespace | White space between markup. | |
SignificantWhitespace | White space between markup in a mixed content model or white space within the xml:space="preserve" scope. | |
EndElement | An end element tag (for example, </item>).
EndElement nodes are returned when XmlReader reaches the end of an element. |
|
EndEntity | Returned when XmlReader reaches the end of the entity replacement as a result of a call to ResolveEntity. | |
XmlDeclaration | The XML declaration (for example, <?xml version='1.0'?>).
The XmlDeclaration node must be the first node in the document. It cannot have children. It is a child of the Document node. It can have attributes that provide version and encoding information. |
Examples
The following example navigates through the stream to determine the current node type, and then uses XmlWriter to output the XmlReader content.
Dim output As StringBuilder = New StringBuilder()
Dim xmlString As String = "<?xml version='1.0'?>" & _
"<!-- This is a sample XML document -->" & _
"<Items>" & _
"<Item>test with a child element <more/> stuff</Item>" & _
"</Items>"
' Create an XmlReader
Using reader As XmlReader = XmlReader.Create(New StringReader(xmlString))
Dim ws As XmlWriterSettings = New XmlWriterSettings()
ws.Indent = True
Using writer As XmlWriter = XmlWriter.Create(output, ws)
' Parse the file and display each of the nodes.
While reader.Read()
Select Case reader.NodeType
Case XmlNodeType.Element
writer.WriteStartElement(reader.Name)
Case XmlNodeType.Text
writer.WriteString(reader.Value)
Case XmlNodeType.XmlDeclaration
Case XmlNodeType.ProcessingInstruction
writer.WriteProcessingInstruction(reader.Name, reader.Value)
Case XmlNodeType.Comment
writer.WriteComment(reader.Value)
Case XmlNodeType.EndElement
writer.WriteFullEndElement()
End Select
End While
End Using
End Using
OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
String xmlString =
@"<?xml version='1.0'?>
<!-- This is a sample XML document -->
<Items>
<Item>test with a child element <more/> stuff</Item>
</Items>";
// Create an XmlReader
using (XmlReader reader = XmlReader.Create(new StringReader(xmlString)))
{
XmlWriterSettings ws = new XmlWriterSettings();
ws.Indent = true;
using (XmlWriter writer = XmlWriter.Create(output, ws))
{
// Parse the file and display each of the nodes.
while (reader.Read())
{
switch (reader.NodeType)
{
case XmlNodeType.Element:
writer.WriteStartElement(reader.Name);
break;
case XmlNodeType.Text:
writer.WriteString(reader.Value);
break;
case XmlNodeType.XmlDeclaration:
case XmlNodeType.ProcessingInstruction:
writer.WriteProcessingInstruction(reader.Name, reader.Value);
break;
case XmlNodeType.Comment:
writer.WriteComment(reader.Value);
break;
case XmlNodeType.EndElement:
writer.WriteFullEndElement();
break;
}
}
}
}
OutputTextBlock.Text = output.ToString();
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also