Sample code for 30+ languages & platforms
PowerBuilder

Xml TagPath Property Explained

See more XML Examples

Demonstrates and explains the TagPath property.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Xml
long li_Found
string ls_TagPath

li_Success = 0

loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")
if li_rc < 0 then
    destroy loo_Xml
    MessageBox("Error","Connecting to COM object failed")
    return
end if

//  Load some XML:
li_Success = loo_Xml.LoadXml("<a><bbb><ccc><ddd>1</ddd><ddd><z>zzz</z></ddd><ddd>3</ddd></ccc></bbb></a>")

Write-Debug loo_Xml.GetXml()

//  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:
li_Found = loo_Xml.SearchForTag2(loo_Xml,"z")
if li_Found = 1 then
    //  We found a node having the tag "z".
    //  The TagPath property tells us the location in the document.
    ls_TagPath = loo_Xml.TagPath
    Write-Debug ls_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.
    loo_Xml.GetRoot2()
    Write-Debug loo_Xml.Tag
    //  The root tag is "a".

    //  Follow the tagPath to the "z" node:
    li_Found = loo_Xml.FindChild2(ls_TagPath)
    Write-Debug "found = " + string(li_Found) + ", tag = " + loo_Xml.Tag
    //  We are now at "z".

end if



destroy loo_Xml