XmlTextReader::XmlLang Property
.NET Framework (current version)
Gets the current xml:lang scope.
Assembly: System.Xml (in System.Xml.dll)
Note |
|---|
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
Available since 1.1
Show:
