XmlTextReader::XmlLang Property

 

Gets the current xml:lang scope.

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

public:
property String^ XmlLang {
	virtual String^ get() override;
}

Property Value

Type: System::String^

The current xml:lang scope.

System_CAPS_noteNote

Starting with the .NET Framework 2.0, we recommend that you create XmlReader instances by using the XmlReader::Create method to take advantage of new functionality.

This property represents the xml:lang scope within which the current node resides. For example, here is an XML fragment with xml:lang set to US English in the root element:

<root xml:lang="en-us">

<name>Fred</name>

</root>

When the reader is positioned on the name element, you can use this property to find that it is in the scope of a US English xml:lang attribute.

The following example displays the xml:lang value for each of the nodes.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{

   // Create the XML fragment to be parsed.
   String^ xmlFrag = "<book xml:lang='en-US'>   <title xml:lang='en-GB'>Colour Analysis</title>   <title>Color Analysis</title> </book>";

   // Create the XmlNamespaceManager.
   NameTable^ nt = gcnew NameTable;
   XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( nt );

   // Create the XmlParserContext.
   XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None );

   // Create the reader.
   XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
   reader->WhitespaceHandling = WhitespaceHandling::None;

   // Parse the XML and display each of the nodes, including the xml:lang setting.
   while ( reader->Read() )
   {
      switch ( reader->NodeType )
      {
         case XmlNodeType::Element:
            Console::WriteLine( "{0}: < {1}>", reader->XmlLang, reader->Name );
            break;

         case XmlNodeType::Text:
            Console::WriteLine( "{0}: {1}", reader->XmlLang, reader->Value );
            break;

         case XmlNodeType::EndElement:
            Console::WriteLine( "{0}: </ {1}>", reader->XmlLang, reader->Name );
            break;
      }
   }


   // Close the reader.
   reader->Close();
}

.NET Framework
Available since 1.1
Return to top
Show: