MoveToFirstAttribute
Moves the reader position to the first attribute within the current node.
Syntax
HRESULT MoveToFirstAttribute ();
Return Value
Returns S_OK if no error is generated. Returns E_PENDING if the data is unavailable, and the stream is paused. If there are no attributes on the current node, returns S_FALSE and does not move the position of the reader.
Remarks
This method is most often used to return to the beginning of the attribute list. If the data is unavailable this method returns E_PENDING and the reader does not move forward.
After this method is called, the attributes collection on the element is still accessible; the application can then call other methods that move the reader within the attributes collection.
The following code moves to the first attribute of an element by calling MoveToFirstAttribute:
HRESULT WriteAttributes(IXmlReader* pReader){
const WHCAR* pwszPrefix;
const WCHAR* pwszLocalName;
const WCHAR* pwszValue;
HRESULT hr = pReader->MoveToFirstAttribute();
if(S_FALSE == hr)
return hr;
if(S_OK != hr){
// This is a sample of how one might handle E_PENDING
if(PENDING(pReader->MoveToFirstAttribute())){
wprintf(L"Error getting value, Pending, error is %08.8lx", hr);
while (hr = E_PENDING){
::Sleep(1000);
hr = pReader->MoveToFirstAttribute();
}
}
else
{
wprintf(L"Error moving to first attribute, error is %08.8lx", hr);
return -1;
}
}
}
Requirements
Header: XmlLite.h
Library: XmlLite.lib
See Also
MoveToNextAttribute
MoveToAttributeByName
IXmlReader Methods
IXmlReader Methods