XmlWriter.WriteProcessingInstruction(String, String) 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当在派生类中被重写时,写出在名称和文本之间带有空格的处理指令,如下所示:<?name text?>。
public:
 abstract void WriteProcessingInstruction(System::String ^ name, System::String ^ text);
	public abstract void WriteProcessingInstruction(string name, string text);
	public abstract void WriteProcessingInstruction(string name, string? text);
	abstract member WriteProcessingInstruction : string * string -> unit
	Public MustOverride Sub WriteProcessingInstruction (name As String, text As String)
	参数
- name
 - String
 
处理指令的名称。
- text
 - String
 
要包括在处理指令中的文本。
例外
在上一次异步操作完成之前调用了 XmlWriter 方法。 在此情况下,会引发 InvalidOperationException 并显示消息“异步操作已在进行中。”
示例
以下示例编写一个表示书籍的 XML 文件。
using System;
using System.IO;
using System.Xml;
public class Sample {
  private const string filename = "sampledata.xml";
  public static void Main() {
     XmlWriterSettings settings = new XmlWriterSettings();
     settings.Indent = true;
     XmlWriter writer = XmlWriter.Create(filename, settings);
     // Write the Processing Instruction node.
     String PItext="type=\"text/xsl\" href=\"book.xsl\"";
     writer.WriteProcessingInstruction("xml-stylesheet", PItext);
     // Write the DocumentType node.
     writer.WriteDocType("book", null , null, "<!ENTITY h \"hardcover\">");
     // Write a Comment node.
     writer.WriteComment("sample XML");
     // Write the root element.
     writer.WriteStartElement("book");
     // Write the genre attribute.
     writer.WriteAttributeString("genre", "novel");
     // Write the ISBN attribute.
     writer.WriteAttributeString("ISBN", "1-8630-014");
     // Write the title.
     writer.WriteElementString("title", "The Handmaid's Tale");
     // Write the style element.
     writer.WriteStartElement("style");
     writer.WriteEntityRef("h");
     writer.WriteEndElement();
     // Write the price.
     writer.WriteElementString("price", "19.95");
     // Write CDATA.
     writer.WriteCData("Prices 15% off!!");
     // Write the close tag for the root element.
     writer.WriteEndElement();
     writer.WriteEndDocument();
     // Write the XML to file and close the writer.
     writer.Flush();
     writer.Close();
  }
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Public Class Sample
    Private Const filename As String = "sampledata.xml"
    
  Public Shared Sub Main()
     Dim settings As XmlWriterSettings = new XmlWriterSettings()
     settings.Indent = true
     Dim writer As XmlWriter = XmlWriter.Create(filename, settings)
        
     ' Write the Processing Instruction node.
     Dim PItext As String = "type=""text/xsl"" href=""book.xsl"""
     writer.WriteProcessingInstruction("xml-stylesheet", PItext)
        
     'Write the DocumentType node.
     writer.WriteDocType("book", Nothing, Nothing, "<!ENTITY h ""hardcover"">")
        
     ' Write a Comment node.
     writer.WriteComment("sample XML")
        
     ' Write the root element.
     writer.WriteStartElement("book")
        
     ' Write the genre attribute
     writer.WriteAttributeString("genre", "novel")
        
     ' Write the ISBN attribute.
     writer.WriteAttributeString("ISBN", "1-8630-014")
        
     ' Write the title.
     writer.WriteElementString("title", "The Handmaid's Tale")
        
     ' Write the style element.
     writer.WriteStartElement("style")
     writer.WriteEntityRef("h")
     writer.WriteEndElement()
       
     ' Write the price.
     writer.WriteElementString("price", "19.95")
        
     ' Write CDATA.
     writer.WriteCData("Prices 15% off!!")
        
     ' Write the close tag for the root element.
     writer.WriteEndElement()
        
     writer.WriteEndDocument()
        
     ' Write the XML to file and close the writer
     writer.Flush()
     writer.Close()
        
    End Sub
End Class
	注解
此方法可用于 (而不是) WriteStartDocument 编写 XML 声明。 这可能会导致编码属性被错误写入。 例如,以下 C# 代码将导致无效的 XML 文档,因为默认编码为 UTF-8。
XmlWriter writer = XmlWriter.Create("output.xml");
writer.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-16'");
writer.WriteStartElement("root");
writer.Close();
如果 text 是 null 或 String.Empty,则此方法写入 ProcessingInstruction 没有数据内容的 ,例如 <?name?>。
如果文本包含无效的“?>”序列, XmlWriter 是否可以引发 ArgumentException (XmlTextWriter 对象) 或插入空格“? >“以避免) 方法创建的Create对象写入无效的 XML XmlWriter (。
有关此方法的异步版本,请参阅 WriteProcessingInstructionAsync。