XmlWriter::WriteAttributeString Method (String^, String^)

 

When overridden in a derived class, writes out the attribute with the specified local name and value.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public:
void WriteAttributeString(
	String^ localName,
	String^ value
)

Parameters

localName
Type: System::String^

The local name of the attribute.

value
Type: System::String^

The value of the attribute.

Exception Condition
InvalidOperationException

The state of writer is not WriteState.Element or writer is closed.

ArgumentException

The xml:space or xml:lang attribute value is invalid.

InvalidOperationException

An XmlWriter method was called before a previous asynchronous operation finished. In this case, InvalidOperationException is thrown with the message “An asynchronous operation is already in progress.”

WriteAttributeString does the following:

  • If the attribute value includes double or single quotes, they are replaced with " and ' respectively.

  • If writing an xml:space attribute, the writer verifies the attribute value is valid. (Valid values are preserve or default.)

  • If writing an xml:lang attribute, the writer does not verify that the attribute value is valid according to the W3C XML 1.0 recommendation.

For the asynchronous version of this method, see WriteAttributeStringAsync.

The following example writes out a book.

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

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show: