Sample code for 30+ languages & platforms
C

Xml TagPath Property Explained

See more XML Examples

Demonstrates and explains the TagPath property.

Chilkat C Downloads

C
#include <C_CkXml.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkXml xml;
    BOOL found;
    const char *tagPath;

    success = FALSE;

    xml = CkXml_Create();

    //  Load some XML:
    success = CkXml_LoadXml(xml,"<a><bbb><ccc><ddd>1</ddd><ddd><z>zzz</z></ddd><ddd>3</ddd></ccc></bbb></a>");

    printf("%s\n",CkXml_getXml(xml));

    //  This is what we have:

    //  <?xml version="1.0" encoding="utf-8"?>
    //  <a>
    //      <bbb>
    //          <ccc>
    //              <ddd>1</ddd>
    //              <ddd>
    //                  <z>zzz</z>
    //              </ddd>
    //              <ddd>3</ddd>
    //          </ccc>
    //      </bbb>
    //  </a>

    //  The TagPath property is read-only property that returns the unique path to the
    //  node from the document root.

    //  For example:
    found = CkXml_SearchForTag2(xml,xml,"z");
    if (found == TRUE) {
        //  We found a node having the tag "z".
        //  The TagPath property tells us the location in the document.
        tagPath = CkXml_tagPath(xml);
        printf("%s\n",tagPath);

        //  The tagPath is bbb|ccc|ddd[1]|z

        //  If we to back to the document root, we can get to the given node via the tagPath.
        CkXml_GetRoot2(xml);
        printf("%s\n",CkXml_tag(xml));
        //  The root tag is "a".

        //  Follow the tagPath to the "z" node:
        found = CkXml_FindChild2(xml,tagPath);
        printf("found = %d, tag = %s\n",found,CkXml_tag(xml));
        //  We are now at "z".

    }



    CkXml_Dispose(xml);

    }