System.Xml.XmlWriter.WriteNode 方法 (XmlReader, Boolean)

方法描述

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

语法定义(C# System.Xml.XmlWriter.WriteNode 方法 (XmlReader, Boolean) 的用法)

public virtual void WriteNode(
	XmlReader reader,
	bool defattr
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
reader System-Xml-XmlReader 要从其进行读取的 XmlReader。
defattr System-Boolean 如果为 true,则从 XmlReader 中复制默认特性;否则为 false。
返回值 void

提示和注释

下表显示此方法支持的节点类型。

NodeType

WriteNode 行为

None

写出所有类型的节点。 也就是说,编写器使用 XmlReader,并写出所有节点输入(包括特性、处理指令、注释等等)。

当 XmlReader 处于初始状态时,会出现此情况。 (XmlReader.ReadState 属性返回 ReaderState.Initial)。

Element

写出元素节点和任何特性节点。

Attribute

无操作。 请改用 WriteStartAttribute 或 WriteAttributeString。

Text

写出文本节点。

CDATA

写出 CDATA 节节点。

EntityReference

写出实体引用节点。

ProcessingInstruction

写出处理指令节点。

Comment

写出注释节点。

DocumentType

写出文档类型节点。

SignificantWhitespace

写出有效空白节点。

Whitespace

写出空白节点。

EndElement

写出结束元素标记。

EndEntity

无操作。

XmlDeclaration

写出 XML 声明节点。

如果读取器处于初始状态,则此方法将读取器移到文件结尾。 如果读取器已在文件结尾或处于关闭状态,则此方法处于不可执行状态。

下面的 C# 代码将整个 XML 输入文档复制到控制台:

复制

XmlReader reader = XmlReader.Create(myfile);

XmlWriter writer = XmlWriter.Create(Console.Out);

writer.WriteNode(reader, false);

如果已离开根节点并定位在文档中的其他位置,则下面的 C# 示例可正确地写出节点。

复制

XmlReader reader = XmlReader.Create(myfile);

reader.Read(); // Read PI

reader.Read(); // Read Comment

reader.Read(); // Read DOCType

XmlWriter writer = XmlWriter.Create(Console.Out);

while (!reader.EOF){

writer.WriteNode(reader, false);

}

如果将读取器配置为返回空白并且将编写器配置为缩进输出,则 WriteNode 可能产生奇怪的输出。 您实质上将得到双重格式设置。

System.Xml.XmlWriter.WriteNode 方法 (XmlReader, Boolean)例子

该示例使用文件 books.xml 作为输入。


  
    The Autobiography of Benjamin Franklin
    
      Benjamin
      Franklin
    
    8.99
  
  
    The Confidence Man
    
      Herman
      Melville
    
    11.99
  
  
    The Gorgias
    
      Plato
    
    9.99
  

异常

异常 异常描述
ArgumentNullException reader 为 null。
ArgumentException reader 包含无效字符。

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。