XmlReader.MoveToContent 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检查当前节点是否为内容(非空白文本、CDATA、Element、EndElementEntityReference或EndEntity)节点。 如果节点不是内容节点,读取器将跳到下一个内容节点或文件末尾。 它跳过以下类型的节点:ProcessingInstruction、、DocumentType、CommentWhitespace或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。