Partager via


XmlReader.MoveToContent Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. If the node is not a content node, the reader skips ahead to the next content node or end of file. It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or SignificantWhitespace.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)

Syntax

'Declaration
Public Overridable Function MoveToContent As XmlNodeType
public virtual XmlNodeType MoveToContent()

Return Value

Type: System.Xml.XmlNodeType
The NodeType of the current node found by the method or XmlNodeType.None if the reader has reached the end of the input stream.

Exceptions

Exception Condition
XmlException

Incorrect XML encountered in the input stream.

Remarks

If the current node is an attribute node, this method moves the reader back to the element that owns the attribute.

Examples

The following example uses the MoveToContent method.

Dim output As StringBuilder = New StringBuilder()

' XmlXapResolver is the default resolver. 
Using reader As XmlReader = XmlReader.Create("book.xml")

    ' Moves the reader to the root element.
    reader.MoveToContent()

    reader.ReadToFollowing("book")
    ' Note that ReadInnerXml only returns the markup of the node's children
    ' so the book's attributes are not returned.
    output.AppendLine("Read the first book using ReadInnerXml...")
    output.AppendLine(reader.ReadInnerXml())

    reader.ReadToFollowing("book")

    ' ReadOuterXml returns the markup for the current node and its children
    ' so the book's attributes are also returned.
    output.AppendLine("Read the second book using ReadOuterXml...")
    output.AppendLine(reader.ReadOuterXml())
End Using

OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();

// XmlXapResolver is the default resolver.
using (XmlReader reader = XmlReader.Create("book.xml"))
{
    // Moves the reader to the root element.
    reader.MoveToContent();

    reader.ReadToFollowing("book");
    // Note that ReadInnerXml only returns the markup of the node's children
    // so the book's attributes are not returned.
    output.AppendLine("Read the first book using ReadInnerXml...");
    output.AppendLine(reader.ReadInnerXml());

    reader.ReadToFollowing("book");

    // ReadOuterXml returns the markup for the current node and its children
    // so the book's attributes are also returned.
    output.AppendLine("Read the second book using ReadOuterXml...");
    output.AppendLine(reader.ReadOuterXml());

}

OutputTextBlock.Text = output.ToString();

The example uses bool.xml file as input.

<bookstore>
    <book genre='novel' ISBN='10-861003-324'>
        <title>The Handmaid's Tale</title>
        <price>19.95</price>
    </book>
    <book genre='novel' ISBN='1-861001-57-5'>
        <title>Pride And Prejudice</title>
        <price>24.95</price>
    </book>
</bookstore>

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.