XmlWriter 类

定义

表示一个写入器,该写入器提供一种快速、非缓存和只进方式以生成包含 XML 数据的流或文件。

public ref class XmlWriter abstract : IDisposable
public ref class XmlWriter abstract : IAsyncDisposable, IDisposable
public ref class XmlWriter abstract
public abstract class XmlWriter : IDisposable
public abstract class XmlWriter : IAsyncDisposable, IDisposable
public abstract class XmlWriter
type XmlWriter = class
    interface IDisposable
type XmlWriter = class
    interface IAsyncDisposable
    interface IDisposable
type XmlWriter = class
Public MustInherit Class XmlWriter
Implements IDisposable
Public MustInherit Class XmlWriter
Implements IAsyncDisposable, IDisposable
Public MustInherit Class XmlWriter
继承
XmlWriter
派生
实现

示例

以下示例代码演示如何使用异步 API 生成 XML。

async Task TestWriter(Stream stream)
{
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Async = true;

    using (XmlWriter writer = XmlWriter.Create(stream, settings)) {
        await writer.WriteStartElementAsync("pf", "root", "http://ns");
        await writer.WriteStartElementAsync(null, "sub", null);
        await writer.WriteAttributeStringAsync(null, "att", null, "val");
        await writer.WriteStringAsync("text");
        await writer.WriteEndElementAsync();
        await writer.WriteProcessingInstructionAsync("pName", "pValue");
        await writer.WriteCommentAsync("cValue");
        await writer.WriteCDataAsync("cdata value");
        await writer.WriteEndElementAsync();
        await writer.FlushAsync();
    }
}

注解

有关此 API 的详细信息,请参阅 XmlWriter 的补充 API 备注

构造函数

XmlWriter()

初始化 XmlWriter 类的新实例。

属性

Settings

获取用于创建此 XmlWriter 实例的 XmlWriterSettings 对象。

WriteState

当在派生类中被重写时,获取写入器的状态。

XmlLang

当在派生类中被重写时,获取当前的 xml:lang 范围。

XmlSpace

当在派生类中被重写时,获取表示当前 xml:space 范围的 XmlSpace

方法

Close()

当在派生类中被重写时,将关闭此流和基础流。

Create(Stream)

使用指定的流创建一个新的 XmlWriter 实例。

Create(Stream, XmlWriterSettings)

使用流和 XmlWriter 对象创建一个新的 XmlWriterSettings 实例。

Create(String)

使用指定的文件名创建一个新的 XmlWriter 实例。

Create(String, XmlWriterSettings)

使用文件名和 XmlWriter 对象创建一个新的 XmlWriterSettings 实例。

Create(StringBuilder)

使用指定的 XmlWriter 创建一个新的 StringBuilder 实例。

Create(StringBuilder, XmlWriterSettings)

使用 XmlWriterStringBuilder 对象创建一个新的 XmlWriterSettings 实例。

Create(TextWriter)

使用指定的 XmlWriter 创建一个新的 TextWriter 实例。

Create(TextWriter, XmlWriterSettings)

使用 XmlWriterTextWriter 对象创建一个新的 XmlWriterSettings 实例。

Create(XmlWriter)

使用指定的 XmlWriter 对象创建一个新的 XmlWriter 实例。

Create(XmlWriter, XmlWriterSettings)

使用指定的 XmlWriterXmlWriter 对象创建一个新的 XmlWriterSettings 实例。

Dispose()

释放 XmlWriter 类的当前实例所使用的所有资源。

Dispose(Boolean)

释放由 XmlWriter 占用的非托管资源,还可以另外再释放托管资源。

DisposeAsync()

以异步方式执行与释放或重置非托管资源相关的应用程序定义的任务。

DisposeAsyncCore()

以异步方式执行与释放或重置托管资源相关的应用程序定义的任务。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Flush()

当在派生类中被重写时,将缓冲区中的所有内容刷新到基础流,并同时刷新基础流。

FlushAsync()

将缓冲区中的所有内容异步刷新到基础流,并同时刷新基础流。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
LookupPrefix(String)

当在派生类中被重写时,返回在当前命名空间范围中为该命名空间 URI 定义的最近的前缀。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)
WriteAttributes(XmlReader, Boolean)

当在派生类中被重写时,写出在 XmlReader 中当前位置找到的所有属性。

WriteAttributesAsync(XmlReader, Boolean)

XmlReader 中的当前位置异步写出找到的所有属性。

WriteAttributeString(String, String)

当在派生类中被重写时,写出具有指定的本地名称和值的属性。

WriteAttributeString(String, String, String)

当在派生类中被重写时,写入具有指定的本地名称、命名空间 URI 和值的属性。

WriteAttributeString(String, String, String, String)

当在派生类中被重写时,写出具有指定的前缀、本地名称、命名空间 URI 和值的属性。

WriteAttributeStringAsync(String, String, String, String)

异步写出具有指定前缀、本地名称、命名空间 URI 和值的属性。

WriteBase64(Byte[], Int32, Int32)

当在派生类中被重写时,将指定的二进制字节编码为 Base64 并写出结果文本。

WriteBase64Async(Byte[], Int32, Int32)

将指定的二进制字节异步编码为 Base64 并写出结果文本。

WriteBinHex(Byte[], Int32, Int32)

当在派生类中被重写时,将指定的二进制字节编码为 BinHex 并写出结果文本。

WriteBinHexAsync(Byte[], Int32, Int32)

将指定的二进制字节异步编码为 BinHex 并写出结果文本。

WriteCData(String)

当在派生类中被重写时,写出包含指定文本的 <![CDATA[...]]> 块。

WriteCDataAsync(String)

异步写出一个包含指定文本的 <![CDATA[...]]> 块。

WriteCharEntity(Char)

当在派生类中被重写时,为指定的 Unicode 字符值强制生成字符实体。

WriteCharEntityAsync(Char)

为指定的 Unicode 字符值异步强制生成字符实体。

WriteChars(Char[], Int32, Int32)

当在派生类中被重写时,以每次一个缓冲区的方式写入文本。

WriteCharsAsync(Char[], Int32, Int32)

以每次一个缓冲区的方式异步写入文本。

WriteComment(String)

当在派生类中被重写时,写出包含指定文本的注释 <!--...-->。

WriteCommentAsync(String)

异步写出一个包含指定文本的注释 <!--...-->。

WriteDocType(String, String, String, String)

当在派生类中被重写时,写出具有指定名称和可选属性的 DOCTYPE 声明。

WriteDocTypeAsync(String, String, String, String)

异步写入具有指定名称和可选属性的 DOCTYPE 声明。

WriteElementString(String, String)

写入具有指定的本地名称和值的元素。

WriteElementString(String, String, String)

写入具有指定的本地名称、命名空间 URI 和值的元素。

WriteElementString(String, String, String, String)

写入具有指定的前缀、本地名称、命名空间 URI 和值的元素。

WriteElementStringAsync(String, String, String, String)

异步写入具有指定的前缀、本地名称、命名空间 URI 和值的元素。

WriteEndAttribute()

当在派生类中被重写时,关闭上一个 WriteStartAttribute(String, String) 调用。

WriteEndAttributeAsync()

异步关闭前一个 WriteStartAttribute(String, String) 调用。

WriteEndDocument()

当在派生类中被重写时,关闭任何打开的元素或属性并将写入器重新设置为起始状态。

WriteEndDocumentAsync()

异步关闭任何打开的元素或属性并将写入器重新设置为起始状态。

WriteEndElement()

当在派生类中被重写时,关闭一个元素并弹出相应的命名空间范围。

WriteEndElementAsync()

异步关闭一个元素并弹出相应的命名空间范围。

WriteEntityRef(String)

当在派生类中被重写时,按 &name; 写出实体引用。

WriteEntityRefAsync(String)

&name; 异步写出实体引用。

WriteFullEndElement()

当在派生类中被重写时,关闭一个元素并弹出相应的命名空间范围。

WriteFullEndElementAsync()

异步关闭一个元素并弹出相应的命名空间范围。

WriteName(String)

在派生类中重写时,写出指定的名称,确保它根据 W3C XML 1.0 建议 (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 有效。

WriteNameAsync(String)

异步写出指定的名称,确保它根据 W3C XML 1.0 建议 (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 有效。

WriteNmToken(String)

在派生类中重写时,写出指定的名称,确保它根据 W3C XML 1.0 建议 (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 是有效的 NmToken。

WriteNmTokenAsync(String)

异步写出指定的名称,确保它根据 W3C XML 1.0 建议 (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name) 是有效的 NmToken。

WriteNode(XmlReader, Boolean)

当在派生类中被重写时,将全部内容从读取器复制到写入器并将读取器移动到下一个同级的开始位置。

WriteNode(XPathNavigator, Boolean)

将所有内容从 XPathNavigator 对象复制到编写器。 XPathNavigator 的位置保持不变。

WriteNodeAsync(XmlReader, Boolean)

将所有内容从读取器异步复制到写入器并将读取器移动到下一个同级的开头。

WriteNodeAsync(XPathNavigator, Boolean)

从编写器的 XPathNavigator 对象中异步复制所有内容。 XPathNavigator 的位置保持不变。

WriteProcessingInstruction(String, String)

当在派生类中被重写时,写出在名称和文本之间带有空格的处理指令,如下所示:<?name text?>。

WriteProcessingInstructionAsync(String, String)

异步写出在名称和文本之间有空格的处理指令,如下所示:<?name text?>。

WriteQualifiedName(String, String)

当在派生类中被重写时,写出命名空间限定的名称。 此方法查找位于给定命名空间范围内的前缀。

WriteQualifiedNameAsync(String, String)

异步写出命名空间限定的名称。 此方法查找位于给定命名空间范围内的前缀。

WriteRaw(Char[], Int32, Int32)

当在派生类中被重写时,从字符缓冲区手动写入原始标记。

WriteRaw(String)

当在派生类中被重写时,从字符串手动写入原始标记。

WriteRawAsync(Char[], Int32, Int32)

从字符缓冲区手动异步写入原始标记。

WriteRawAsync(String)

从字符串手动异步写入原始标记。

WriteStartAttribute(String)

写入具有指定本地名称的属性的开头。

WriteStartAttribute(String, String)

写入具有指定本地名称和命名空间 URI 的属性的开头。

WriteStartAttribute(String, String, String)

当在派生类中被重写时,写入具有指定的前缀、本地名称和命名空间 URI 的属性的开头。

WriteStartAttributeAsync(String, String, String)

异步写入具有指定前缀、本地名称和命名空间 URI 的属性的开头。

WriteStartDocument()

当在派生类中被重写时,写入版本为“1.0”的 XML 声明。

WriteStartDocument(Boolean)

当在派生类中被重写时,写入版本为“1.0”的 XML 声明和独立的属性。

WriteStartDocumentAsync()

异步写入版本为“1.0”的 XML 声明。

WriteStartDocumentAsync(Boolean)

异步写入版本为“1.0”的 XML 声明和独立的属性。

WriteStartElement(String)

当在派生类中被重写时,写出具有指定的本地名称的开始标记。

WriteStartElement(String, String)

当在派生类中被重写时,写入指定的开始标记并将其与给定的命名空间关联起来。

WriteStartElement(String, String, String)

当在派生类中被重写时,写入指定的开始标记并将其与给定的命名空间和前缀关联起来。

WriteStartElementAsync(String, String, String)

异步写入指定的开始标记并将其与给定的命名空间和前缀关联起来。

WriteString(String)

当在派生类中被重写时,写入给定的文本内容。

WriteStringAsync(String)

异步写入给定的文本内容。

WriteSurrogateCharEntity(Char, Char)

当在派生类中被重写时,为代理项字符对生成并写入代理项字符实体。

WriteSurrogateCharEntityAsync(Char, Char)

为代理项字符对异步生成并写入代理项字符实体。

WriteValue(Boolean)

写入 Boolean 值。

WriteValue(DateTime)

写入 DateTime 值。

WriteValue(DateTimeOffset)

写入 DateTimeOffset 值。

WriteValue(Decimal)

写入 Decimal 值。

WriteValue(Double)

写入 Double 值。

WriteValue(Int32)

写入 Int32 值。

WriteValue(Int64)

写入 Int64 值。

WriteValue(Object)

写入对象值。

WriteValue(Single)

写入一个单精度浮点数。

WriteValue(String)

写入 String 值。

WriteWhitespace(String)

当在派生类中被重写时,写出给定的空白区域。

WriteWhitespaceAsync(String)

异步写出给定的空白区域。

显式接口实现

IDisposable.Dispose()

有关此成员的说明,请参见 Dispose()

扩展方法

ConfigureAwait(IAsyncDisposable, Boolean)

配置如何执行从异步可处置项返回的任务的等待。

适用于

另请参阅