XmlReader.MoveToContent 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
檢查目前節點是否為內容節點(非空白文字、CDATA、ElementEndElementEntityReference或EndEntity)節點。 若該節點不是內容節點,讀取器會跳到下一個內容節點或檔案的結尾。 它會跳過以下類型的節點:ProcessingInstruction、DocumentTypeCommentWhitespace或。SignificantWhitespace
public:
virtual System::Xml::XmlNodeType MoveToContent();
public virtual System.Xml.XmlNodeType MoveToContent();
abstract member MoveToContent : unit -> System.Xml.XmlNodeType
override this.MoveToContent : unit -> System.Xml.XmlNodeType
Public Overridable Function MoveToContent () As XmlNodeType
傳回
是 NodeType 方法所找到的當前節點,或 XmlNodeType.None 是讀取器是否已到達輸入串流的終點。
例外狀況
輸入串流中遇到錯誤的 XML 檔案。
在先前非同步操作結束前,會呼叫一個 XmlReader 方法。 此時, InvalidOperationException 會拋出「非同步操作已進行中」的訊息。
範例
當你想寫能跳過隨機 XML 標記且不會破壞的程式碼時,這非常有用。 例如,假設您有以下程式碼:
if (reader.MoveToContent() == XmlNodeType.Element && reader.Name == "price")
{
_price = reader.ReadString();
}
If reader.MoveToContent() = XmlNodeType.Element And reader.Name = "price" Then
_price = reader.ReadString()
End If
此程式碼可處理以下輸入而不中斷:
<price>123.4</price>
和
<?xml version="1.0"><!DOCTYPE price SYSTEM
"abc"><price>123.4</price>
和
<?xml version="1.0"><!DOCTYPE price SYSTEM "abc"
[<!ENTITY p
"123.4">]><price>&p;</price>
和
<!-- some test comment --><?processing
instruction?><price>123.4</price>
備註
如果目前的節點是屬性節點,此方法會將讀取器移回擁有該屬性的元素。
關於此方法的非同步版本,請參見 MoveToContentAsync。