Auf Englisch lesen

Freigeben über


XmlWriter.WriteProcessingInstruction(String, String) Methode

Definition

Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Verarbeitungsanweisung mit einem Leerzeichen zwischen dem Namen und dem Text wie folgt: <?name text?>.

C#
public abstract void WriteProcessingInstruction(string name, string text);
C#
public abstract void WriteProcessingInstruction(string name, string? text);

Parameter

name
String

Der Name der Verarbeitungsanweisung.

text
String

Der in die Verarbeitungsanweisung einzufügende Text.

Ausnahmen

Der Text ergibt kein wohlgeformtes XML-Dokument.

name ist entweder null oder String.Empty.

Diese Methode wird zum Erstellen einer XML-Deklaration nach einem Aufruf von WriteStartDocument() verwendet.

Eine XmlWriter-Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall wird InvalidOperationException mit der Meldung „Es wird bereits ein asynchroner Vorgang ausgeführt“ ausgelöst.

Beispiele

Im folgenden Beispiel wird eine XML-Datei geschrieben, die ein Buch darstellt.

C#
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();
  }
}

Hinweise

Diese Methode kann verwendet werden, um die XML-Deklaration (anstelle WriteStartDocumentvon ) zu schreiben. Dies kann dazu führen, dass das Codierungsattribut falsch geschrieben wird. Beispielsweise würde der folgende C#-Code zu einem ungültigen XML-Dokument führen, da die Standardcodierung UTF-8 ist.

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

Wenn entweder oder ist, schreibt diese Methode einen ProcessingInstruction ohne Dateninhalt, z. B<. "name">.String.Emptynulltext

Wenn Text eine ungültige Sequenz von "?>" enthält, kann entweder XmlWriter ein ArgumentException (XmlTextWriter -Objekte) ausgelöst oder ein Leerzeichen eingefügt werden? >" , um zu vermeiden, dass ungültige XML -Dateien geschrieben werden (XmlWriter objekte, die von der Create -Methode erstellt wurden).

Die asynchrone Version dieser Methode finden Sie unter WriteProcessingInstructionAsync.

Gilt für:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0