XmlWriter.WriteProcessingInstruction(String, String) XmlWriter.WriteProcessingInstruction(String, String) XmlWriter.WriteProcessingInstruction(String, String) XmlWriter.WriteProcessingInstruction(String, String) Method

定義

派生クラスでオーバーライドされると、名前とテキストの間にスペースがある処理命令を、次のように非同期的に書き込みます: <?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 String String String

処理命令の名前。The name of the processing instruction.

text
String String String String

処理命令に含めるテキスト。The text to include in the processing instruction.

例外

テキストは、非整形式の XML ドキュメントになります。The text would result in a non-well formed XML document.

namenull または String.Empty です。name 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
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 'Main 
End Class 'Sample

注釈

このメソッドは、(ではなくWriteStartDocument) XML 宣言を書き込むために使用できます。This method can be used to write the XML declaration (rather than WriteStartDocument). これにより、エンコード属性が誤って書き込まれる可能性があります。This could result in the encoding attribute being incorrectly written. たとえば、次C#のコードでは、既定のエンコードが utf-8 であるため、無効な XML ドキュメントが生成されます。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またはnull ProcessingInstruction <のいずれかの場合、このメソッドはデータコンテンツのないを書き込みます。たとえば、「name? >」と指定します。 String.EmptyIf text is either null or String.Empty, this method writes a ProcessingInstruction with no data content, for example <?name?>.

テキストに "? >" の無効なシーケンスが含まれXmlWriterている場合、 ArgumentExceptionXmlTextWriter (オブジェクト) をスローするか、空白文字を挿入できますか?If text contains an invalid sequence of "?>", the XmlWriter can either throw an ArgumentException (XmlTextWriter objects) or insert a space "? 無効な XML (XmlWriterメソッドによって作成されたオブジェクト) が書き込まれないようにするには、 Create > ます。>" to avoid writing invalid XML (XmlWriter objects created by the Create method).

このメソッドの非同期バージョンについてはWriteProcessingInstructionAsync、「」を参照してください。For the asynchronous version of this method, see WriteProcessingInstructionAsync.

適用対象