Sdílet prostřednictvím


XmlWriter.WriteProcessingInstruction(String, String) Metoda

Definice

Při přepsání v odvozené třídě zapíše instrukce zpracování s mezerou mezi názvem a textem následujícím způsobem: <?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)

Parametry

name
String

Název instrukce pro zpracování.

text
String

Text, který se má zahrnout do instrukce pro zpracování.

Výjimky

Výsledkem textu by byl dokument XML, který není ve správném formátu.

name je buď null, nebo String.Empty.

Tato metoda se používá k vytvoření deklarace XML po WriteStartDocument() zavolání.

XmlWriter Před dokončením předchozí asynchronní operace byla volána metoda. V tomto případě InvalidOperationException je vyvolán zpráva "Asynchronní operace již probíhá".

Příklady

Následující příklad zapíše soubor XML představující knihu.

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

Poznámky

Tuto metodu lze použít k zápisu deklarace XML (nikoli WriteStartDocument). To může vést k nesprávnému zápisu atributu kódování. Následující kód jazyka C# by například vedlo k neplatnému dokumentu XML, protože výchozí kódování je UTF-8.

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

Pokud text je nebo null String.Empty, tato metoda zapíše bez datového ProcessingInstruction obsahu, například <?name?>.

Pokud text obsahuje neplatnou posloupnost "?>", XmlWriter může buď vyvolat ArgumentException (XmlTextWriter objekty) nebo vložit mezeru ?? >", abyste se vyhnuli zápisu neplatných XML (XmlWriter objektů vytvořených metodou Create ).

Asynchronní verze této metody naleznete v tématu WriteProcessingInstructionAsync.

Platí pro