Sample code for 30+ languages & platforms
Unicode C

Xml TagPath Property Explained

See more XML Examples

Demonstrates and explains the TagPath property.

Note: The TagPath property was introduced in Chilkat v9.5.0.77

Chilkat Unicode C Downloads

Unicode C
#include <C_CkXmlW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkXmlW xml;
    BOOL found;
    const wchar_t *tagPath;

    success = FALSE;

    xml = CkXmlW_Create();

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

    wprintf(L"%s\n",CkXmlW_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 = CkXmlW_SearchForTag2(xml,xml,L"z");
    if (found == TRUE) {
        // We found a node having the tag "z".
        // The TagPath property tells us the location in the document.
        tagPath = CkXmlW_tagPath(xml);
        wprintf(L"%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.
        CkXmlW_GetRoot2(xml);
        wprintf(L"%s\n",CkXmlW_tag(xml));
        // The root tag is "a".

        // Follow the tagPath to the "z" node:
        found = CkXmlW_FindChild2(xml,tagPath);
        wprintf(L"found = %d, tag = %s\n",found,CkXmlW_tag(xml));
        // We are now at "z".

    }



    CkXmlW_Dispose(xml);

    }