XmlWriter.Create 方法

定义

创建一个新的 XmlWriter 实例。

重载

Create(StringBuilder, XmlWriterSettings)

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

Create(String, XmlWriterSettings)

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

Create(TextWriter, XmlWriterSettings)

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

Create(Stream, XmlWriterSettings)

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

Create(XmlWriter, XmlWriterSettings)

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

Create(StringBuilder)

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

Create(String)

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

Create(TextWriter)

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

Create(Stream)

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

Create(XmlWriter)

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

注解

Create某些重载包括接受 settingsXmlWriterSettings 对象的参数。 可以使用此对象来:

  • 指定要在创建的 XmlWriter 对象上支持的功能。

  • 重用 对象 XmlWriterSettings 以创建多个编写器对象。 将为每个创建的写入器复制 XmlWriterSettings 对象并标记为只读。 更改 XmlWriterSettings 实例上的设置不会影响具有相同设置的现有写入器。 因此,可以使用相同的设置创建多个具有相同功能的写入器。 也可以修改 XmlWriterSettings 实例上的设置并创建具有不同功能集的新写入器。

  • 向现有 XML 编写器添加功能。 Create 方法可以接受其他 XmlWriter 对象。 基础 XmlWriter 对象不必是静态 Create 方法创建的 XML 编写器。 例如,可以指定要向其添加其他功能的用户定义的 XML 编写器。

  • 充分利用功能,例如更好的符合性检查和 XML 1.0 建议 的合规性,这些建议仅适用于 XmlWriter 静态 Create 方法创建的对象。

如果使用 Create 不接受 XmlWriterSettings 对象的重载,则使用以下默认编写器设置:

设置 默认
CheckCharacters true
CloseOutput false
ConformanceLevel ConformanceLevel.Document
Encoding Encoding.UTF8
Indent false
IndentChars 两个空格
NamespaceHandling Default (不删除)
NewLineChars \r\n(回车符、换行符)
NewLineHandling NewLineHandling.Replace
NewLineOnAttributes false
OmitXmlDeclaration false
OutputMethod XmlOutputMethod.Xml
WriteEndDocumentOnClose true

注意

尽管.NET Framework包括 XmlTextWriter 类(类的具体实现XmlWriter),但建议使用 Create 方法创建XmlWriter实例。

Create(StringBuilder, XmlWriterSettings)

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

public:
 static System::Xml::XmlWriter ^ Create(System::Text::StringBuilder ^ output, System::Xml::XmlWriterSettings ^ settings);
public static System.Xml.XmlWriter Create (System.Text.StringBuilder output, System.Xml.XmlWriterSettings settings);
public static System.Xml.XmlWriter Create (System.Text.StringBuilder output, System.Xml.XmlWriterSettings? settings);
static member Create : System.Text.StringBuilder * System.Xml.XmlWriterSettings -> System.Xml.XmlWriter
Public Shared Function Create (output As StringBuilder, settings As XmlWriterSettings) As XmlWriter

参数

output
StringBuilder

要写入的 StringBuilder。 由 XmlWriter 写入的内容被追加到 StringBuilder

settings
XmlWriterSettings

用于配置新 XmlWriterSettings 实例的 XmlWriter 对象。 如果这是 null,则使用具有默认设置的 XmlWriterSettings

如果将 XmlWriter 用于 Transform(String, XmlWriter) 方法,则应使用 OutputSettings 属性获取具有正确设置的 XmlWriterSettings 对象。 这样可以确保所创建的 XmlWriter 对象的输出设置是正确的。

返回

一个 XmlWriter 对象。

例外

builder 值为 null

适用于

Create(String, XmlWriterSettings)

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

public:
 static System::Xml::XmlWriter ^ Create(System::String ^ outputFileName, System::Xml::XmlWriterSettings ^ settings);
public static System.Xml.XmlWriter Create (string outputFileName, System.Xml.XmlWriterSettings? settings);
public static System.Xml.XmlWriter Create (string outputFileName, System.Xml.XmlWriterSettings settings);
static member Create : string * System.Xml.XmlWriterSettings -> System.Xml.XmlWriter
Public Shared Function Create (outputFileName As String, settings As XmlWriterSettings) As XmlWriter

参数

outputFileName
String

要对其写入的文件。 XmlWriter 在指定路径上创建一个文件,并采用 XML 1.0 文本语法写入该文件。 outputFileName 必须为文件系统路径。

settings
XmlWriterSettings

用于配置新 XmlWriterSettings 实例的 XmlWriter 对象。 如果这是 null,则使用具有默认设置的 XmlWriterSettings

如果将 XmlWriter 用于 Transform(String, XmlWriter) 方法,则应使用 OutputSettings 属性获取具有正确设置的 XmlWriterSettings 对象。 这样可以确保所创建的 XmlWriter 对象的输出设置是正确的。

返回

一个 XmlWriter 对象。

例外

url 值为 null

示例

以下示例使用定义的设置创建对象 XmlWriter

using System;
using System.IO;
using System.Xml;
using System.Text;

public class Sample {

  public static void Main() {

    XmlWriter writer = null;

    try {

       // Create an XmlWriterSettings object with the correct options.
       XmlWriterSettings settings = new XmlWriterSettings();
       settings.Indent = true;
       settings.IndentChars = ("\t");
       settings.OmitXmlDeclaration = true;

       // Create the XmlWriter object and write some content.
       writer = XmlWriter.Create("data.xml", settings);
       writer.WriteStartElement("book");
       writer.WriteElementString("item", "tesing");
       writer.WriteEndElement();
    
       writer.Flush();
     }
     finally  {
        if (writer != null)
          writer.Close();
     }
  }
}
Imports System.IO
Imports System.Xml
Imports System.Text

Public Class Sample 

  Public Shared Sub Main() 
  
    Dim writer As XmlWriter = Nothing

    Try 

       ' Create an XmlWriterSettings object with the correct options. 
       Dim settings As XmlWriterSettings = New XmlWriterSettings()
       settings.Indent = true
       settings.IndentChars = (ControlChars.Tab)
       settings.OmitXmlDeclaration = true

       ' Create the XmlWriter object and write some content.
       writer = XmlWriter.Create("data.xml", settings)
       writer.WriteStartElement("book")
       writer.WriteElementString("item", "tesing")
       writer.WriteEndElement()
    
       writer.Flush()

      Finally
         If Not (writer Is Nothing) Then
            writer.Close()
         End If
      End Try

   End Sub 
End Class

适用于

Create(TextWriter, XmlWriterSettings)

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

public:
 static System::Xml::XmlWriter ^ Create(System::IO::TextWriter ^ output, System::Xml::XmlWriterSettings ^ settings);
public static System.Xml.XmlWriter Create (System.IO.TextWriter output, System.Xml.XmlWriterSettings settings);
public static System.Xml.XmlWriter Create (System.IO.TextWriter output, System.Xml.XmlWriterSettings? settings);
static member Create : System.IO.TextWriter * System.Xml.XmlWriterSettings -> System.Xml.XmlWriter
Public Shared Function Create (output As TextWriter, settings As XmlWriterSettings) As XmlWriter

参数

output
TextWriter

要写入的 TextWriterXmlWriter 编写 XML 1.0 文本语法,并将该语法追加到指定 TextWriter

settings
XmlWriterSettings

用于配置新 XmlWriterSettings 实例的 XmlWriter 对象。 如果这是 null,则使用具有默认设置的 XmlWriterSettings

如果将 XmlWriter 用于 Transform(String, XmlWriter) 方法,则应使用 OutputSettings 属性获取具有正确设置的 XmlWriterSettings 对象。 这样可以确保所创建的 XmlWriter 对象的输出设置是正确的。

返回

一个 XmlWriter 对象。

例外

text 值为 null

示例

以下示例写出 XML 字符串。

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
StringWriter sw = new StringWriter();

using (XmlWriter writer = XmlWriter.Create(sw, settings))
{
    writer.WriteStartElement("book");
    writer.WriteElementString("price", "19.95");
    writer.WriteEndElement();
    writer.Flush();

    String output = sw.ToString();
}
Dim settings As New XmlWriterSettings()
settings.OmitXmlDeclaration = True
Dim sw As New StringWriter()
        
Using writer As XmlWriter = XmlWriter.Create(sw, settings)
  writer.WriteStartElement("book")
  writer.WriteElementString("price", "19.95")
  writer.WriteEndElement()
  writer.Flush()
            
  Dim output As String = sw.ToString()
End Using

适用于

Create(Stream, XmlWriterSettings)

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

public:
 static System::Xml::XmlWriter ^ Create(System::IO::Stream ^ output, System::Xml::XmlWriterSettings ^ settings);
public static System.Xml.XmlWriter Create (System.IO.Stream output, System.Xml.XmlWriterSettings settings);
public static System.Xml.XmlWriter Create (System.IO.Stream output, System.Xml.XmlWriterSettings? settings);
static member Create : System.IO.Stream * System.Xml.XmlWriterSettings -> System.Xml.XmlWriter
Public Shared Function Create (output As Stream, settings As XmlWriterSettings) As XmlWriter

参数

output
Stream

要对其写入的流。 XmlWriter 编写 XML 1.0 文本语法并将其追加到指定的流中。

settings
XmlWriterSettings

用于配置新 XmlWriterSettings 实例的 XmlWriter 对象。 如果这是 null,则使用具有默认设置的 XmlWriterSettings

如果将 XmlWriter 用于 Transform(String, XmlWriter) 方法,则应使用 OutputSettings 属性获取具有正确设置的 XmlWriterSettings 对象。 这样可以确保所创建的 XmlWriter 对象的输出设置是正确的。

返回

一个 XmlWriter 对象。

例外

stream 值为 null

示例

以下示例将 XML 片段写入内存流。

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

注解

XmlWriter 始终将字节顺序标记 (BOM) 写入基础数据流;但是,某些流不得具有 BOM。 若要省略 BOM,请创建一个新 XmlWriterSettings 对象,并将 Encoding 属性设置为构造函数中布尔值设置为 false 的新 UTF8Encoding 对象。

适用于

Create(XmlWriter, XmlWriterSettings)

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

public:
 static System::Xml::XmlWriter ^ Create(System::Xml::XmlWriter ^ output, System::Xml::XmlWriterSettings ^ settings);
public static System.Xml.XmlWriter Create (System.Xml.XmlWriter output, System.Xml.XmlWriterSettings settings);
public static System.Xml.XmlWriter Create (System.Xml.XmlWriter output, System.Xml.XmlWriterSettings? settings);
static member Create : System.Xml.XmlWriter * System.Xml.XmlWriterSettings -> System.Xml.XmlWriter
Public Shared Function Create (output As XmlWriter, settings As XmlWriterSettings) As XmlWriter

参数

output
XmlWriter

要用作基础编写器的 XmlWriter 对象。

settings
XmlWriterSettings

用于配置新 XmlWriterSettings 实例的 XmlWriter 对象。 如果这是 null,则使用具有默认设置的 XmlWriterSettings

如果将 XmlWriter 用于 Transform(String, XmlWriter) 方法,则应使用 OutputSettings 属性获取具有正确设置的 XmlWriterSettings 对象。 这样可以确保所创建的 XmlWriter 对象的输出设置是正确的。

返回

一个 XmlWriter 对象,是指定的 XmlWriter 对象周围的包装。

例外

writer 值为 null

注解

此方法允许向基础 XmlWriter 对象添加其他功能。 基础 XmlWriter 对象可以是 由 XmlWriter.Create 方法创建的对象,也可以是使用 XmlTextWriter 实现创建的 对象。

适用于

Create(StringBuilder)

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

public:
 static System::Xml::XmlWriter ^ Create(System::Text::StringBuilder ^ output);
public static System.Xml.XmlWriter Create (System.Text.StringBuilder output);
static member Create : System.Text.StringBuilder -> System.Xml.XmlWriter
Public Shared Function Create (output As StringBuilder) As XmlWriter

参数

output
StringBuilder

要写入的 StringBuilder。 由 XmlWriter 写入的内容被追加到 StringBuilder

返回

一个 XmlWriter 对象。

例外

builder 值为 null

注解

使用此重载时, XmlWriterSettings 将使用具有默认设置的对象来创建 XML 编写器。

设置 默认
CheckCharacters true
CloseOutput false
ConformanceLevel ConformanceLevel.Document
Encoding Encoding.UTF8
Indent false
IndentChars 两个空格
NamespaceHandling Default (不删除)
NewLineChars \r\n(回车符、换行符)
NewLineHandling NewLineHandling.Replace
NewLineOnAttributes false
OmitXmlDeclaration false
OutputMethod XmlOutputMethod.Xml
WriteEndDocumentOnClose true

如果要指定要在创建的 XML 编写器上支持的功能,请使用重载,该重载将 XmlWriterSettings 对象作为其参数之一,并使用自定义设置传入 XmlWriterSettings 对象。

适用于

Create(String)

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

public:
 static System::Xml::XmlWriter ^ Create(System::String ^ outputFileName);
public static System.Xml.XmlWriter Create (string outputFileName);
static member Create : string -> System.Xml.XmlWriter
Public Shared Function Create (outputFileName As String) As XmlWriter

参数

outputFileName
String

要对其写入的文件。 XmlWriter 在指定路径上创建一个文件,并采用 XML 1.0 文本语法写入该文件。 outputFileName 必须为文件系统路径。

返回

一个 XmlWriter 对象。

例外

url 值为 null

示例

以下示例创建一个 XmlWriter 对象并写入一个书籍节点。

using (XmlWriter writer = XmlWriter.Create("output.xml"))
{
    writer.WriteStartElement("book");
    writer.WriteElementString("price", "19.95");
    writer.WriteEndElement();
    writer.Flush();
}
Using writer As XmlWriter = XmlWriter.Create("output.xml")
  writer.WriteStartElement("book")
  writer.WriteElementString("price", "19.95")
  writer.WriteEndElement()
  writer.Flush()
End Using

注解

使用此重载时, XmlWriterSettings 将使用具有默认设置的对象来创建 XML 编写器。

设置 默认
CheckCharacters true
CloseOutput false
ConformanceLevel ConformanceLevel.Document
Encoding Encoding.UTF8
Indent false
IndentChars 两个空格
NamespaceHandling Default (不删除)
NewLineChars \r\n(回车符、换行符)
NewLineHandling NewLineHandling.Replace
NewLineOnAttributes false
OmitXmlDeclaration false
OutputMethod XmlOutputMethod.Xml
WriteEndDocumentOnClose true

如果要指定要在创建的 XML 编写器上支持的功能,请使用重载,该重载将 XmlWriterSettings 对象作为其参数之一,并使用自定义设置传入 XmlWriterSettings 对象。

适用于

Create(TextWriter)

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

public:
 static System::Xml::XmlWriter ^ Create(System::IO::TextWriter ^ output);
public static System.Xml.XmlWriter Create (System.IO.TextWriter output);
static member Create : System.IO.TextWriter -> System.Xml.XmlWriter
Public Shared Function Create (output As TextWriter) As XmlWriter

参数

output
TextWriter

要写入的 TextWriterXmlWriter 编写 XML 1.0 文本语法,并将该语法追加到指定 TextWriter

返回

一个 XmlWriter 对象。

例外

text 值为 null

示例

以下示例创建一个输出到控制台的编写器。

using (XmlWriter writer = XmlWriter.Create(Console.Out))
{
    writer.WriteStartElement("book");
    writer.WriteElementString("price", "19.95");
    writer.WriteEndElement();
    writer.Flush();
}
Using writer As XmlWriter = XmlWriter.Create(Console.Out)
  writer.WriteStartElement("book")
  writer.WriteElementString("price", "19.95")
  writer.WriteEndElement()
  writer.Flush()
End Using

注解

使用此重载时, XmlWriterSettings 将使用具有默认设置的对象来创建 XML 编写器。

设置 默认
CheckCharacters true
CloseOutput false
ConformanceLevel ConformanceLevel.Document
Encoding Encoding.UTF8
Indent false
IndentChars 两个空格
NamespaceHandling Default (不删除)
NewLineChars \r\n(回车符、换行符)
NewLineHandling NewLineHandling.Replace
NewLineOnAttributes false
OmitXmlDeclaration false
OutputMethod XmlOutputMethod.Xml
WriteEndDocumentOnClose true

如果要指定要在创建的编写器上支持的功能,请使用重载,该重载将 XmlWriterSettings 对象作为其参数之一,并使用自定义设置传入 XmlWriterSettings 对象。

适用于

Create(Stream)

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

public:
 static System::Xml::XmlWriter ^ Create(System::IO::Stream ^ output);
public static System.Xml.XmlWriter Create (System.IO.Stream output);
static member Create : System.IO.Stream -> System.Xml.XmlWriter
Public Shared Function Create (output As Stream) As XmlWriter

参数

output
Stream

要对其写入的流。 XmlWriter 编写 XML 1.0 文本语法并将其追加到指定的流中。

返回

一个 XmlWriter 对象。

例外

stream 值为 null

示例

以下示例将 XML 片段写入内存流。 (它使用 Create(Stream, XmlWriterSettings) 重载,该重载还会在新 XML 编写器实例上配置设置。)

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

注解

使用此重载时, XmlWriterSettings 将使用以下默认设置的对象来创建 XML 编写器:

设置 默认
CheckCharacters true
CloseOutput false
ConformanceLevel ConformanceLevel.Document
Encoding Encoding.UTF8
Indent false
IndentChars 两个空格
NamespaceHandling Default (不删除)
NewLineChars \r\n(回车符、换行符)
NewLineHandling NewLineHandling.Replace
NewLineOnAttributes false
OmitXmlDeclaration false
OutputMethod XmlOutputMethod.Xml
WriteEndDocumentOnClose true

如果要指定要在创建的编写器上支持的功能,请使用重载,该重载将 XmlWriterSettings 对象作为其参数之一,并使用自定义设置传入 XmlWriterSettings 对象。

此外,XmlWriter 始终将字节顺序标记 (BOM) 写入基础数据流;但是,某些流不得具有 BOM。 若要省略 BOM,请创建一个新 XmlWriterSettings 对象,并将 Encoding 属性设置为构造函数中布尔值设置为 false 的新 UTF8Encoding 对象。

适用于

Create(XmlWriter)

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

public:
 static System::Xml::XmlWriter ^ Create(System::Xml::XmlWriter ^ output);
public static System.Xml.XmlWriter Create (System.Xml.XmlWriter output);
static member Create : System.Xml.XmlWriter -> System.Xml.XmlWriter
Public Shared Function Create (output As XmlWriter) As XmlWriter

参数

output
XmlWriter

要用作基础编写器的 XmlWriter 对象。

返回

一个 XmlWriter 对象,是指定的 XmlWriter 对象周围的包装。

例外

writer 值为 null

注解

此方法允许向基础 XmlWriter 对象添加功能。 基础 XmlWriter 对象可以是 由 XmlWriter.Create 方法创建的对象,也可以是使用 XmlTextWriter 实现创建的 对象。

使用此重载时, XmlWriterSettings 将使用具有默认设置的对象来创建 XML 编写器。

设置 默认
CheckCharacters true
CloseOutput false
ConformanceLevel ConformanceLevel.Document
Encoding Encoding.UTF8
Indent false
IndentChars 两个空格
NamespaceHandling Default (不删除)
NewLineChars \r\n(回车符、换行符)
NewLineHandling NewLineHandling.Replace
NewLineOnAttributes false
OmitXmlDeclaration false
OutputMethod XmlOutputMethod.Xml
WriteEndDocumentOnClose true

如果要指定要在创建的 XML 编写器上支持的功能,请使用重载,该重载将 XmlWriterSettings 对象作为其参数之一,并使用自定义设置传入 XmlWriterSettings 对象。

适用于