XmlTextReader 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示提供对 XML 数据进行快速、非缓存、只进访问的读取器。
从 .NET Framework 2.0 开始,建议改用 XmlReader 类。
public ref class XmlTextReader : System::Xml::XmlReader, System::Xml::IXmlLineInfo, System::Xml::IXmlNamespaceResolver
public ref class XmlTextReader : System::Xml::XmlReader, System::Xml::IXmlLineInfo
public class XmlTextReader : System.Xml.XmlReader, System.Xml.IXmlLineInfo, System.Xml.IXmlNamespaceResolver
public class XmlTextReader : System.Xml.XmlReader, System.Xml.IXmlLineInfo
type XmlTextReader = class
inherit XmlReader
interface IXmlLineInfo
interface IXmlNamespaceResolver
type XmlTextReader = class
inherit XmlReader
interface IXmlLineInfo
Public Class XmlTextReader
Inherits XmlReader
Implements IXmlLineInfo, IXmlNamespaceResolver
Public Class XmlTextReader
Inherits XmlReader
Implements IXmlLineInfo
- 继承
- 实现
注解
备注
从 .NET Framework 2.0 开始,我们建议使用该方法XmlReader.Create利用新功能来创建XmlReader实例。
XmlTextReader 提供对 XML 数据流的正向只读访问权限。 当前节点指读取器所处的节点。 读取器使用任何读取方法和属性都反映了当前节点的值。
此类实现 XmlReader 并符合 W3C 可扩展标记语言 (XML) 1.0 和 XML 建议中的命名空间。 XmlTextReader
提供以下功能:
强制实施格式良好的 XML 规则。
XmlTextReader
不提供数据验证。DocumentType
检查节点的格式是否正确。XmlTextReader
检查 DTD 是否格式良好,但不使用 DTD 进行验证。对于节点,NodeType
XmlNodeType.EntityReference
(返回单个空EntityReference
节点,该Value属性String.Empty
) 。
备注
DTD 中实体的实际声明称为 Entity
节点。 在数据中引用这些节点时,它们称为 EntityReference
节点。
- 不展开默认属性。
XmlTextReader
由于不执行数据验证所需的额外检查,因此它提供了快速格式分析器。
若要执行数据验证,请使用验证 XmlReader。
若要从中 XmlDocument读取 XML 数据,请使用 XmlNodeReader。
XmlTextReader
引发 XmlException XML 分析错误。 引发异常后,读取器的状态不可预测。 例如,报告的节点类型可能与当前节点的实际节点类型不同。 使用 ReadState 属性检查读取器是否处于错误状态。
安全注意事项
以下是使用 XmlTextReader 类时要考虑的事项。
引发 XmlTextReader 异常可能会泄露不希望气泡到应用程序的路径信息。 应用程序必须捕获异常并进行相应的处理。
默认情况下启用 DTD 处理。 如果担心拒绝服务问题或处理不受信任的源,请禁用 DTD 处理。 将 DtdProcessing 属性设置为 Prohibit 禁用 DTD 处理。
如果启用了 DTD 处理,可以使用 XmlSecureResolver 限制 XmlTextReader 可以访问的资源。 还可以设计应用程序以使 XML 处理受内存和时间的约束。 例如,在 ASP.NET 应用程序中配置超时限制。
XML 数据可以包括对外部资源的引用,例如 DTD 文件。 默认情况下,外部资源使用没有用户凭据的 XmlUrlResolver 对象进行解析。 通过执行下列操作之一,可以使此操作更加安全:
通过将 XmlTextReader 属性设置为 XmlResolver 对象限制 XmlSecureResolver 可访问的资源。
通过将 XmlReader 属性设置为 XmlResolver,不允许
null
打开任何外部资源。
XML 数据可以包含大量属性、命名空间声明、嵌套元素等,需要大量的时间来处理。 若要限制发送到该 XmlTextReader输入的大小,请创建自定义 IStream 实现并提供它 XmlTextReader。
该方法 ReadValueChunk 可用于处理大型数据流。 此方法一次读取少量的字符,而不是为整个值分配单个字符串。
默认情况下不展开常规实体。 常规实体在调用 ResolveEntity 方法时展开。
继承者说明
此类具有继承需求。 必须完全信任才能从 XmlTextReader
中继承。
构造函数
属性
AttributeCount |
获取当前节点上的属性数目。 |
BaseURI |
获取当前节点的基 URI。 |
CanReadBinaryContent |
获取一个值,该值指示 XmlTextReader 是否实现二进制内容读取方法。 |
CanReadBinaryContent |
获取一个值,该值指示 XmlReader 是否实现二进制内容读取方法。 (继承自 XmlReader) |
CanReadValueChunk |
获取一个值,该值指示 XmlTextReader 是否实现 ReadValueChunk(Char[], Int32, Int32) 方法。 |
CanReadValueChunk |
获取一个值,该值指示 XmlReader 是否实现 ReadValueChunk(Char[], Int32, Int32) 方法。 (继承自 XmlReader) |
CanResolveEntity |
获取一个值,该值指示此读取器是否可以分析和解析实体。 |
CanResolveEntity |
获取一个值,该值指示此读取器是否可以分析和解析实体。 (继承自 XmlReader) |
Depth |
获取 XML 文档中当前节点的深度。 |
DtdProcessing |
获取或设置 DtdProcessing 枚举。 |
Encoding |
获取文档的编码。 |
EntityHandling |
获取或设置一个值,该值指定读取器处理实体的方式。 |
EOF |
获取一个值,该值指示读取器是否定位在流结尾。 |
HasAttributes |
获取一个值,该值指示当前节点是否有任何属性。 (继承自 XmlReader) |
HasValue |
获取一个值,该值指示当前节点是否可以具有 |
IsDefault |
获取一个值,该值指示当前节点是否是从 DTD 或架构中定义的默认值生成的属性。 |
IsEmptyElement |
获取一个值,该值指示当前节点是否为空元素(例如 |
Item[Int32] |
获取具有指定索引的属性的值。 |
Item[Int32] |
当在派生类中被重写时,获取具有指定索引的属性的值。 (继承自 XmlReader) |
Item[String, String] |
获取具有指定本地名称和命名空间 URI 的属性的值。 |
Item[String, String] |
当在派生类中被重写时,获取具有指定 LocalName 和 NamespaceURI 的属性的值。 (继承自 XmlReader) |
Item[String] |
获取具有指定名称的属性的值。 |
Item[String] |
当在派生类中被重写时,获取具有指定 Name 的属性的值。 (继承自 XmlReader) |
LineNumber |
获取当前行号。 |
LinePosition |
获取当前行位置。 |
LocalName |
获取当前节点的本地名称。 |
Name |
获取当前节点的限定名称。 |
Namespaces |
获取或设置一个值,该值指示是否进行命名空间支持。 |
NamespaceURI |
获取读取器定位在的节点的命名空间 URI(采用 W3C 命名空间规范中定义)。 |
NameTable |
获取与此实现关联的 XmlNameTable。 |
NodeType |
获取当前节点的类型。 |
Normalization |
获取或设置一个值,该值指示是否规范化空白区域和属性值。 |
Prefix |
获取与当前节点关联的命名空间前缀。 |
ProhibitDtd |
已过时。
已过时。
获取或设置一个值,该值指示是否允许 DTD 处理。 此属性已过时。 请改用 DtdProcessing。 |
QuoteChar |
获取用于括起属性节点的值的引号字符。 |
ReadState |
获取读取器的状态。 |
SchemaInfo |
获取作为架构验证结果分配给当前节点的架构信息。 (继承自 XmlReader) |
Settings |
获取用于创建此 XmlTextReader 实例的 XmlReaderSettings 对象。 |
Settings |
获取用于创建此 XmlReader 实例的 XmlReaderSettings 对象。 (继承自 XmlReader) |
Value |
获取当前节点的文本值。 |
ValueType |
获取当前节点的公共语言运行时 (CLR) 类型。 (继承自 XmlReader) |
WhitespaceHandling |
获取或设置一个值,该值指定如何处理空白区域。 |
XmlLang |
获取当前 |
XmlResolver |
设置用于解析 DTD 引用的 XmlResolver。 |
XmlSpace |
获取当前 |
方法
显式接口实现
IDisposable.Dispose() |
有关此成员的说明,请参见 Dispose()。 (继承自 XmlReader) |
IXmlLineInfo.HasLineInfo() |
有关此成员的说明,请参见 HasLineInfo()。 |
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope) |
有关此成员的说明,请参见 GetNamespacesInScope(XmlNamespaceScope)。 |
IXmlNamespaceResolver.LookupNamespace(String) |
有关此成员的说明,请参见 LookupNamespace(String)。 |
IXmlNamespaceResolver.LookupPrefix(String) |
有关此成员的说明,请参见 LookupPrefix(String)。 |