C
C
AddAttribute - Insert New Attribute in an XML Node
Demonstrates adding an name=value attribute to an XML element.
This example uses the XML sample file here: sample1.xml. The sample1.xml file contains this content:
Chilkat C Downloads
#include <C_CkXml.h>
void ChilkatSample(void)
{
BOOL success;
HCkXml xml;
BOOL bFound;
int numChildren;
int i;
success = FALSE;
xml = CkXml_Create();
success = CkXml_LoadXmlFile(xml,"qa_data/xml/sample1.xml");
if (success != TRUE) {
printf("%s\n",CkXml_lastErrorText(xml));
CkXml_Dispose(xml);
return;
}
// Navigate to the "books" element:
bFound = CkXml_FindChild2(xml,"books");
if (bFound == FALSE) {
printf("No books child found!\n");
CkXml_Dispose(xml);
return;
}
numChildren = CkXml_getNumChildren(xml);
i = 0;
while (i < numChildren) {
// Navigate to the Nth book
CkXml_GetChild2(xml,i);
// Display the book title:
printf("%s\n",CkXml_getAttrValue(xml,"title"));
// Add a new integer attribute:
// Should never fail..
CkXml_AddAttributeInt(xml,"bookId",i);
// Add a new unread="yes" attribute:
CkXml_AddAttribute(xml,"unread","yes");
// Navigate back up to the parent:
CkXml_GetParent2(xml);
i = i + 1;
}
// Navigate back to the document root:
CkXml_GetRoot2(xml);
// Save the updated document:
success = CkXml_SaveXml(xml,"modified.xml");
if (success != TRUE) {
printf("%s\n",CkXml_lastErrorText(xml));
CkXml_Dispose(xml);
return;
}
printf("%s\n",CkXml_getXml(xml));
CkXml_Dispose(xml);
}