XmlWriter.WriteProcessingInstruction(String, String) 方法

定義

在衍生類別中覆寫時,寫出名稱與文字之間有空白的處理指示,如下所示:<?name text?>。When overridden in a derived class, writes out a processing instruction with a space between the name and text as follows: <?name text?>.

public:
 abstract void WriteProcessingInstruction(System::String ^ name, System::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

處理指示的名稱。The name of the processing instruction.

text
String

要包含在處理指示中的文字。The text to include in the processing instruction.

例外狀況

此文字會導致非語式正確的 XML 文件。The text would result in a non-well formed XML document.

namenullString.Emptyname is either null or String.Empty.

在呼叫 WriteStartDocument() 之後,使用這個方法來建立 XML 宣告。This method is being used to create an XML declaration after WriteStartDocument() has already been called.

在先前的非同步作業完成前呼叫了 XmlWriter 方法。An XmlWriter method was called before a previous asynchronous operation finished. 在此情況下,會擲回 InvalidOperationException 與「非同步作業已經在進行中」的訊息。In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

範例

下列範例會寫入代表書籍的 XML 檔案。The following example writes an XML file representing a book.

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

備註

這個方法可以用來寫入 XML 宣告(而非WriteStartDocument)。This method can be used to write the XML declaration (rather than WriteStartDocument). 這可能會導致編碼屬性的撰寫不正確。This could result in the encoding attribute being incorrectly written. 例如,下列C#程式碼會產生不正確 XML 檔,因為預設編碼方式為 utf-8。For example, the following C# code would result in an invalid XML document because the default encoding is UTF-8.

XmlWriter writer = XmlWriter.Create("output.xml");  
writer.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-16'");  
writer.WriteStartElement("root");  
writer.Close();  

如果text ProcessingInstruction <是或,String.Empty這個方法會寫入沒有資料內容的,例如? name? >。 nullIf text is either null or String.Empty, this method writes a ProcessingInstruction with no data content, for example <?name?>.

如果文字包含不正確 "? >" 順序, XmlWriter可以ArgumentException擲回(XmlTextWriter物件)或插入空格」?If text contains an invalid sequence of "?>", the XmlWriter can either throw an ArgumentException (XmlTextWriter objects) or insert a space "? > "以避免寫入不正確 XMLXmlWriter (方法所Create建立的物件)。>" to avoid writing invalid XML (XmlWriter objects created by the Create method).

如需這個方法的非同步版本,請WriteProcessingInstructionAsync參閱。For the asynchronous version of this method, see WriteProcessingInstructionAsync.

適用於