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

注釈

このメソッドは、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いずれかですnullまたはString.Empty、このメソッドを書き込みます、ProcessingInstructionデータのコンテンツの例ではない<でしょうか。 名か? >。If text is either null or String.Empty, this method writes a ProcessingInstruction with no data content, for example <?name?>.

テキストに無効なシーケンスが含まれている場合"? >"、XmlWriterか throw ことができます、 ArgumentException (XmlTextWriterオブジェクト) は空白を挿入または"でしょうか。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.

適用対象