Sample code for 30+ languages & platforms
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

C++
#include <CkXml.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkXml xml;

    success = xml.LoadXmlFile("qa_data/xml/sample1.xml");
    if (success != true) {
        std::cout << xml.lastErrorText() << "\r\n";
        return;
    }

    //  Navigate to the "books" element:
    bool bFound = xml.FindChild2("books");
    if (bFound == false) {
        std::cout << "No books child found!" << "\r\n";
        return;
    }

    int numChildren = xml.get_NumChildren();

    int i = 0;
    while (i < numChildren) {

        //  Navigate to the Nth book 
        xml.GetChild2(i);

        //  Display the book title:
        std::cout << xml.getAttrValue("title") << "\r\n";

        //  Add a new integer attribute:
        //  Should never fail..
        xml.AddAttributeInt("bookId",i);

        //  Add a new unread="yes" attribute:
        xml.AddAttribute("unread","yes");

        //  Navigate back up to the parent:
        xml.GetParent2();

        i = i + 1;
    }

    //  Navigate back to the document root:
    xml.GetRoot2();

    //  Save the updated document:
    success = xml.SaveXml("modified.xml");
    if (success != true) {
        std::cout << xml.lastErrorText() << "\r\n";
        return;
    }

    std::cout << xml.getXml() << "\r\n";
    }