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 包含无效字符。 |
版本信息
.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 系统要求。