Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loXml
LOCAL lnBFound
LOCAL lnNumChildren
LOCAL i

lnSuccess = 0

loXml = CreateObject('Chilkat.Xml')

lnSuccess = loXml.LoadXmlFile("qa_data/xml/sample1.xml")
IF (lnSuccess <> 1) THEN
    ? loXml.LastErrorText
    RELEASE loXml
    CANCEL
ENDIF

* Navigate to the "books" element:
lnBFound = loXml.FindChild2("books")
IF (lnBFound = 0) THEN
    ? "No books child found!"
    RELEASE loXml
    CANCEL
ENDIF

lnNumChildren = loXml.NumChildren

i = 0
DO WHILE i < lnNumChildren

    * Navigate to the Nth book 
    loXml.GetChild2(i)

    * Display the book title:
    ? loXml.GetAttrValue("title")

    * Add a new integer attribute:
    * Should never fail..
    loXml.AddAttributeInt("bookId",i)

    * Add a new unread="yes" attribute:
    loXml.AddAttribute("unread","yes")

    * Navigate back up to the parent:
    loXml.GetParent2()

    i = i + 1
ENDDO

* Navigate back to the document root:
loXml.GetRoot2()

* Save the updated document:
lnSuccess = loXml.SaveXml("modified.xml")
IF (lnSuccess <> 1) THEN
    ? loXml.LastErrorText
    RELEASE loXml
    CANCEL
ENDIF

? loXml.GetXml()

RELEASE loXml