Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkXml.pb"

Procedure ChilkatExample()

    success.i = 0

    xml.i = CkXml::ckCreate()
    If xml.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

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

    Debug CkXml::ckGetXml(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.i = CkXml::ckSearchForTag2(xml,xml,"z")
    If found = 1
        ; We found a node having the tag "z".
        ; The TagPath property tells us the location in the document.
        tagPath.s = CkXml::ckTagPath(xml)
        Debug 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::ckGetRoot2(xml)
        Debug CkXml::ckTag(xml)
        ; The root tag is "a".

        ; Follow the tagPath to the "z" node:
        found = CkXml::ckFindChild2(xml,tagPath)
        Debug "found = " + Str(found) + ", tag = " + CkXml::ckTag(xml)
        ; We are now at "z".

    EndIf



    CkXml::ckDispose(xml)


    ProcedureReturn
EndProcedure