XmlWriter.WriteStartElement Metoda

Definicja

Po przesłonięciu w klasie pochodnej zapisuje określony tag startowy.

Przeciążenia

WriteStartElement(String)

Po zastąpieniu w klasie pochodnej zapisuje tag początkowy o określonej nazwie lokalnej.

WriteStartElement(String, String)

Po zastąpieniu w klasie pochodnej zapisuje określony tag startowy i kojarzy go z daną przestrzenią nazw.

WriteStartElement(String, String, String)

Po zastąpieniu w klasie pochodnej zapisuje określony tag startowy i kojarzy go z daną przestrzenią nazw i prefiksem.

Uwagi

Aby uzyskać asynchroniczną wersję tej metody, zobacz WriteStartElementAsync.

WriteStartElement(String)

Po zastąpieniu w klasie pochodnej zapisuje tag początkowy o określonej nazwie lokalnej.

public:
 void WriteStartElement(System::String ^ localName);
public void WriteStartElement (string localName);
member this.WriteStartElement : string -> unit
Public Sub WriteStartElement (localName As String)

Parametry

localName
String

Lokalna nazwa elementu.

Wyjątki

Pisarz jest zamknięty.

-lub-

Metoda XmlWriter została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W tym przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

W buforze znajduje się znak, który jest prawidłowym znakiem XML, ale nie jest prawidłowy dla kodowania danych wyjściowych. Jeśli na przykład kodowanie wyjściowe to ASCII, należy używać tylko znaków z zakresu od 0 do 127 dla nazw elementów i atrybutów. Nieprawidłowy znak może być argumentem tej metody lub argumentem poprzednich metod zapisywanych w buforze. Takie znaki są uciekane przez odwołania do jednostki znaków, gdy jest to możliwe (na przykład w węzłach tekstowych lub wartościach atrybutów). Odwołanie do jednostki znaku nie jest jednak dozwolone w nazwach elementów i atrybutów, komentarzach, instrukcjach przetwarzania lub sekcjach CDATA.

Przykłady

Poniższy przykład zapisuje węzeł XML.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   // Create a writer to write XML to the console.
   XmlWriterSettings^ settings = gcnew XmlWriterSettings;
   settings->Indent = true;
   settings->OmitXmlDeclaration = true;
   XmlWriter^ writer = XmlWriter::Create( Console::Out, settings );
   
   // Write the book element.
   writer->WriteStartElement( L"book" );
   
   // Write the title element.
   writer->WriteStartElement( L"title" );
   writer->WriteString( L"Pride And Prejudice" );
   writer->WriteEndElement();
   
   // Write the close tag for the root element.
   writer->WriteEndElement();
   
   // Write the XML and close the writer.
   writer->Close();
   return 1;
}
using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

     // Create a writer to write XML to the console.
     XmlWriterSettings settings = new XmlWriterSettings();
     settings.Indent = true;
     settings.OmitXmlDeclaration = true;
     XmlWriter writer = XmlWriter.Create(Console.Out, settings);

     // Write the book element.
     writer.WriteStartElement("book");

     // Write the title element.
     writer.WriteStartElement("title");
     writer.WriteString("Pride And Prejudice");
     writer.WriteEndElement();

     // Write the close tag for the root element.
     writer.WriteEndElement();

     // Write the XML and close the writer.
     writer.Close();
  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
  Public Shared Sub Main()

     ' Create a writer to write XML to the console.
     Dim settings As XmlWriterSettings = new XmlWriterSettings()
     settings.Indent = true
     settings.OmitXmlDeclaration = true
     Dim writer As XmlWriter = XmlWriter.Create(Console.Out, settings)

     ' Write the book element.
     writer.WriteStartElement("book")
        
     ' Write the title element.
     writer.WriteStartElement("title")
     writer.WriteString("Pride And Prejudice")
     writer.WriteEndElement()
        
     ' Write the close tag for the root element.
     writer.WriteEndElement()
        
     ' Write the XML and close the writer.
     writer.Close()

  End Sub
End Class

Uwagi

Aby uzyskać asynchroniczną wersję tej metody, zobacz WriteStartElementAsync.

Dotyczy

WriteStartElement(String, String)

Po zastąpieniu w klasie pochodnej zapisuje określony tag startowy i kojarzy go z daną przestrzenią nazw.

public:
 void WriteStartElement(System::String ^ localName, System::String ^ ns);
public void WriteStartElement (string localName, string ns);
public void WriteStartElement (string localName, string? ns);
member this.WriteStartElement : string * string -> unit
Public Sub WriteStartElement (localName As String, ns As String)

Parametry

localName
String

Lokalna nazwa elementu.

ns
String

Identyfikator URI przestrzeni nazw do skojarzenia z elementem. Jeśli ta przestrzeń nazw jest już w zakresie i ma skojarzony prefiks, składnik zapisywania automatycznie zapisuje ten prefiks.

Wyjątki

Pisarz jest zamknięty.

-lub-

Metoda XmlWriter została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W tym przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

W buforze znajduje się znak, który jest prawidłowym znakiem XML, ale nie jest prawidłowy dla kodowania danych wyjściowych. Jeśli na przykład kodowanie wyjściowe to ASCII, należy używać tylko znaków z zakresu od 0 do 127 dla nazw elementów i atrybutów. Nieprawidłowy znak może być argumentem tej metody lub argumentem poprzednich metod zapisywanych w buforze. Takie znaki są uciekane przez odwołania do jednostki znaków, gdy jest to możliwe (na przykład w węzłach tekstowych lub wartościach atrybutów). Odwołanie do jednostki znaku nie jest jednak dozwolone w nazwach elementów i atrybutów, komentarzach, instrukcjach przetwarzania lub sekcjach CDATA.

Uwagi

Po wywołaniu tej metody można napisać atrybuty lub utworzyć zawartość przy użyciu elementu WriteComment, WriteStringlub WriteStartElement dla elementów podrzędnych. Element można zamknąć za pomocą polecenia WriteEndElement lub WriteFullEndElement. Na przykład następujący kod w języku C#:

writer.WriteStartElement("item",null);  
writer.WriteString("some text");  
writer.WriteEndElement();  

Generuje następujące dane wyjściowe:

<item>some text</item>  

Aby uzyskać asynchroniczną wersję tej metody, zobacz WriteStartElementAsync.

Dotyczy

WriteStartElement(String, String, String)

Po zastąpieniu w klasie pochodnej zapisuje określony tag startowy i kojarzy go z daną przestrzenią nazw i prefiksem.

public:
 abstract void WriteStartElement(System::String ^ prefix, System::String ^ localName, System::String ^ ns);
public abstract void WriteStartElement (string prefix, string localName, string ns);
public abstract void WriteStartElement (string? prefix, string localName, string? ns);
abstract member WriteStartElement : string * string * string -> unit
Public MustOverride Sub WriteStartElement (prefix As String, localName As String, ns As String)

Parametry

prefix
String

Prefiks przestrzeni nazw elementu.

localName
String

Lokalna nazwa elementu.

ns
String

Identyfikator URI przestrzeni nazw do skojarzenia z elementem.

Wyjątki

Pisarz jest zamknięty.

-lub-

Metoda XmlWriter została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W tym przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

W buforze znajduje się znak, który jest prawidłowym znakiem XML, ale nie jest prawidłowy dla kodowania danych wyjściowych. Jeśli na przykład kodowanie wyjściowe to ASCII, należy używać tylko znaków z zakresu od 0 do 127 dla nazw elementów i atrybutów. Nieprawidłowy znak może być argumentem tej metody lub argumentem poprzednich metod zapisywanych w buforze. Takie znaki są uciekane przez odwołania do jednostki znaków, gdy jest to możliwe (na przykład w węzłach tekstowych lub wartościach atrybutów). Odwołanie do jednostki znaku nie jest jednak dozwolone w nazwach elementów i atrybutów, komentarzach, instrukcjach przetwarzania lub sekcjach CDATA.

Przykłady

Poniższy przykład zapisuje fragment XML.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
public ref class Sample
{
private:
   static String^ m_Document = L"sampledata.xml";

public:
   static void Main()
   {
      XmlWriter^ writer = nullptr;
      try
      {
         XmlWriterSettings^ settings = gcnew XmlWriterSettings;
         settings->Indent = true;
         writer = XmlWriter::Create( m_Document,settings );
         writer->WriteComment( L"sample XML fragment" );
         
         // Write an element (this one is the root).
         writer->WriteStartElement( L"book" );
         
         // Write the namespace declaration.
         writer->WriteAttributeString( L"xmlns", L"bk", nullptr, L"urn:samples" );
         
         // Write the genre attribute.
         writer->WriteAttributeString( L"genre", L"novel" );
         
         // Write the title.
         writer->WriteStartElement( L"title" );
         writer->WriteString( L"The Handmaid's Tale" );
         writer->WriteEndElement();
         
         // Write the price.
         writer->WriteElementString( L"price", L"19.95" );
         
         // Lookup the prefix and write the ISBN element.
         String^ prefix = writer->LookupPrefix( L"urn:samples" );
         writer->WriteStartElement( prefix, L"ISBN", L"urn:samples" );
         writer->WriteString( L"1-861003-78" );
         writer->WriteEndElement();
         
         // Write the style element (shows a different way to handle prefixes).
         writer->WriteElementString( L"style", L"urn:samples", L"hardcover" );
         
         // Write the close tag for the root element.
         writer->WriteEndElement();
         
         // Write the XML to file and close the writer.
         writer->Flush();
         writer->Close();
      }
      finally
      {
         if ( writer != nullptr )
                  writer->Close();
      }

   }

};

void main()
{
   Sample::Main();
}
using System;
using System.IO;
using System.Xml;

 public class Sample
 {
   private const string m_Document = "sampledata.xml";

   public static void Main() {

      XmlWriter writer = null;

      try {

        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Indent = true;
        writer = XmlWriter.Create (m_Document, settings);

        writer.WriteComment("sample XML fragment");

        // Write an element (this one is the root).
        writer.WriteStartElement("book");

        // Write the namespace declaration.
        writer.WriteAttributeString("xmlns", "bk", null, "urn:samples");

        // Write the genre attribute.
        writer.WriteAttributeString("genre", "novel");

        // Write the title.
        writer.WriteStartElement("title");
        writer.WriteString("The Handmaid's Tale");
        writer.WriteEndElement();

        // Write the price.
        writer.WriteElementString("price", "19.95");

        // Lookup the prefix and write the ISBN element.
        string prefix = writer.LookupPrefix("urn:samples");
        writer.WriteStartElement(prefix, "ISBN", "urn:samples");
        writer.WriteString("1-861003-78");
        writer.WriteEndElement();

        // Write the style element (shows a different way to handle prefixes).
        writer.WriteElementString("style", "urn:samples", "hardcover");

        // Write the close tag for the root element.
        writer.WriteEndElement();

        // Write the XML to file and close the writer.
        writer.Flush();
        writer.Close();
      }

      finally {
        if (writer != null)
           writer.Close();
     }
   }
 }
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml

Public Class Sample
    Private Shared m_Document As String = "sampledata.xml"
    
    Public Shared Sub Main()
        Dim writer As XmlWriter = Nothing
        
      Try

        Dim settings As XmlWriterSettings = new XmlWriterSettings()
        settings.Indent = true
        writer = XmlWriter.Create (m_Document, settings)
            
        writer.WriteComment("sample XML fragment")
            
        ' Write an element (this one is the root).
        writer.WriteStartElement("book")
            
        ' Write the namespace declaration.
        writer.WriteAttributeString("xmlns", "bk", Nothing, "urn:samples")
            
        ' Write the genre attribute.
        writer.WriteAttributeString("genre", "novel")
            
        ' Write the title.
        writer.WriteStartElement("title")
        writer.WriteString("The Handmaid's Tale")
        writer.WriteEndElement()
            
        ' Write the price.
        writer.WriteElementString("price", "19.95")
            
        ' Lookup the prefix and write the ISBN element.
        Dim prefix As String = writer.LookupPrefix("urn:samples")
        writer.WriteStartElement(prefix, "ISBN", "urn:samples")
        writer.WriteString("1-861003-78")
        writer.WriteEndElement()
            
        ' Write the style element (shows a different way to handle prefixes).
        writer.WriteElementString("style", "urn:samples", "hardcover")
            
        ' Write the close tag for the root element.
        writer.WriteEndElement()
            
        ' Write the XML to file and close the writer.
        writer.Flush()
        writer.Close()
        
        Finally
            If Not (writer Is Nothing) Then
                writer.Close()
            End If
        End Try

    End Sub
End Class

Uwagi

Aby uzyskać asynchroniczną wersję tej metody, zobacz WriteStartElementAsync.

Dotyczy