Sample code for 30+ languages & platforms
Rust

Xml TagPath Property Explained

See more XML Examples

Demonstrates and explains the TagPath property.

Chilkat Rust Downloads

Rust

let xml = chilkat::Xml::new();

// Load some XML:
let _ = xml.load_xml("<a><bbb><ccc><ddd>1</ddd><ddd><z>zzz</z></ddd><ddd>3</ddd></ccc></bbb></a>").is_ok();

println!("{}", xml.get_xml().unwrap_or_default());

// 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:
let mut found = xml.search_for_tag2(Some(&xml), "z").is_ok();
if found {
    // We found a node having the tag "z".
    // The TagPath property tells us the location in the document.
    let tag_path = xml.tag_path();
    println!("{}", tag_path);

    // 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.
    xml.get_root2();
    println!("{}", xml.tag());
    // The root tag is "a".

    // Follow the tagPath to the "z" node:
    found = xml.find_child2(&tag_path).is_ok();
    println!("found = {}, tag = {}", found, xml.tag());
    // We are now at "z".

}