Поделиться через


getNamedItem Method

 

Retrieves the attribute with the specified name.

JScript Syntax

var objXMLDOMNode = oXMLDOMNamedNodeMap.getNamedItem(name);  

Parameters

name
A string specifying the name of the attribute.

Return Value

An object. Returns IXMLDOMNode object for the specified attribute. Returns Nothing if the attribute node is not in this collection.

Example

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
var nodeBook, nodeId;
xmlDoc.async = false;
xmlDoc.load("books.xml");
if (xmlDoc.parseError.errorCode != 0) {
   var myErr = xmlDoc.parseError;
   WScript.Echo("You have error " + myErr.reason);
} else {
   nodeBook = xmlDoc.selectSingleNode("//book");
   nodeId = nodeBook.attributes.getNamedItem("id");
   WScript.Echo(nodeId.value);
}

Output

When used with the sample XML file (books.xml), this example returns "bk101", the value of the id attribute for the first instance of the <book> element in books.xml.

C/C++ Syntax

HRESULT getNamedItem(  
    BSTR name,  
    IXMLDOMNode **namedItem);  

Parameters

name[in]
The name of the attribute.

namedItem[out, retval]
An IXMLDOMNode object for the specified attribute. Returns Null if the attribute node is not in this collection.

Return Values

S_OK
The value returned if successful.

S_FALSE
The value when returning Null.

E_INVALIDARG
The value returned if the namedItem parameter is Null.

Example

IXMLDOMNode *pIXMLDOMNode = NULL;  
IXMLDOMNamedNodeMap *pIXMLDOMNamedNodeMap = NULL;  
BSTR bstrAttributeName = ::SysAllocString(_T("dateModified"));  
IXMLDOMElement *pIXMLDOMElement = NULL;  
IXMLDOMDocument *pIXMLDOMDocument = NULL;  
VARIANT varValue;  
  
try  
{  
   // Create an instance of DOMDocument and initialize pIXMLDOMDocument.  
   // Load/create an XML fragment.  
   hr = pIXMLDOMDocument->get_documentElement(&pIXMLDOMElement);  
   SUCCEEDED(hr) ? 0 : throw hr;  
  
   if(pIXMLDOMElement)  
   {  
      hr = pIXMLDOMElement->get_attributes(&pIXMLDOMNamedNodeMap);  
      if(SUCCEEDED(hr) && pIXMLDOMNamedNodeMap)  
      {  
         hr = pIXMLDOMNamedNodeMap->getNamedItem(bstrAttributeName, &pIXMLDOMNode);  
         if(SUCCEEDED(hr) && pIXMLDOMNode)  
         {  
            pIXMLDOMNode->get_nodeValue(&varValue);  
            ::MessageBox(NULL, _bstr_t(varValue), _T("Item Value"), MB_OK);  
            pIXMLDOMNode->Release();  
            pIXMLDOMNode = NULL;  
         }  
         pIXMLDOMNamedNodeMap->Release();  
         pIXMLDOMNamedNodeMap = NULL;  
      }  
      pIXMLDOMElement->Release();  
      pIXMLDOMElement = NULL;  
   }  
   ::SysFreeString(bstrAttributeName);  
   bstrAttributeName = NULL;  
}  
catch(...)  
{  
   if(bstrAttributeName)  
      ::SysFreeString(bstrAttributeName);  
   if(pIXMLDOMElement)  
      pIXMLDOMElement->Release();  
   if(pIXMLDOMNamedNodeMap)  
      pIXMLDOMNamedNodeMap->Release();  
   if(pIXMLDOMNode)  
      pIXMLDOMNode->Release();  
   DisplayErrorToUser();  
}  
// Release pIXMLDOMDocument when finished with it.  

Versioning

Implemented in: MSXML 3.0 and MSXML 6.0

Applies to

IXMLDOMNamedNodeMap

See Also

IXMLDOMNode