System.Xml.XmlTextReader.GetAttribute Method

Gets the value of the attribute with the specified local name and namespace URI.

Syntax

public override string GetAttribute (string localName, string namespaceURI)

Parameters

namespaceURI
The namespace URI of the attribute.
localName
The local name of the attribute.
namespaceURI
The namespace URI of the attribute.

Returns

The value of the specified attribute. If the attribute is not found, null is returned. This method does not move the reader.

Remarks

Note:

In the dnprdnext release, the recommended practice is to create System.Xml.XmlReader instances using the erload:System.Xml.XmlReader.Create method. This allows you to take full advantage of the new features introduced in this release. For more information, see Creating XML Readers.

The following XML contains an attribute in a specific namespace:

Example

<test xmlns:dt="urn:datatypes" dt:type="int"/>

You can lookup the dt:type attribute using one argument (prefix and local name) or two arguments (local name and namespace URI):

Example

String dt = reader.GetAttribute("dt:type");
String dt2 = reader.GetAttribute("type","urn:datatypes");

To lookup the xmlns:dt attribute, use one of the following arguments:

Example

String dt3 = reader.GetAttribute("xmlns:dt");
String dt4 = reader.GetAttribute("dt",http://www.w3.org/2000/xmlns/);

You can also get this information using the XmlTextReader.Prefix property.

Example

This example writes the value of the attributes from the following XML fragment to the console:

<test xmlns:dt="urn:datatypes" dt:type="int"/>

The second attribute value is retrieved using all three overloads of this method.

C# Example

using System;
using System.Xml;

public class Reader {

  public static void Main() {

    string xmlFragment = @"<test xmlns:dt=""urn:datatypes""
                            dt:type=""int""/>";

    NameTable nameTable = new NameTable();
    XmlNamespaceManager xmlNsMan = new 
         XmlNamespaceManager(nameTable);
    XmlParserContext xmlPContext = new
         XmlParserContext(null, xmlNsMan,
                          null, XmlSpace.None);
    XmlTextReader xmlTReader = new
         XmlTextReader(xmlFragment,XmlNodeType.Element,
                       xmlPContext);

    xmlTReader.Read();
    Console.WriteLine( "{0}", xmlTReader.GetAttribute(0) );

    string str1 = xmlTReader.GetAttribute(1);
    string str2 = xmlTReader.GetAttribute("dt:type");
    string str3 = xmlTReader.GetAttribute("type",
                                          "urn:datatypes");
    Console.WriteLine("{0} - {1} - {2}",
                      str1, str2, str3);
  }
}
   

The output is

urn:datatypes

int - int - int

Requirements

Namespace: System.Xml
Assembly: System.Xml (in System.Xml.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0