bool CMarkup::SetAttrib( MCD_CSTR szAttrib, MCD_CSTR szValue, int nFlags = 0 );
bool CMarkup::SetAttrib( MCD_CSTR szAttrib, int nValue, int nFlags = 0 );

Calling SetAttrib adds or changes the attribute named szAttrib in the main position element to have the specified value. If the attribute already exists for the main position element, the value is changed. Otherwise the attribute and its value are added. The method returns false if there is no main position element.

CMarkup xml;
xml.AddElem( "ROOT" );
xml.SetAttrib( "customcode", 35 );
<ROOT customcode="35"/>

SetAttrib also works when the main position is a processing instruction node. See Node Methods in CMarkup.

Update September 27, 2008: In CMarkup release 10.0 you can specify MNF_WITHREFS in the optional nFlags argument to set an attribute value with numeric character references or entities. This tells CMarkup not to double escape ampersands that are followed by an entity name or numeric character reference and semi-colon. Here is an example setting the attribute with an escaped ampersand in the href attribute of an HTML hyperlink.

html.SetAttrib( "href",
  "http://example.com/?a=1&amp;b=2", CMarkup::MNF_WITHREFS );

The AddAttrib method is no longer used and was the same as SetAttrib. The term "Add" is misleading because an element can only have one attribute of a given name.

See also:

SetChildAttrib