Sample code for 30+ languages & platforms
Rust

Handling Namespaces in XML Tags

See more XML Examples

Demonstrates new features added in Chilkat v9.5.0.77 for helping with namespace prefixed tags.

Chilkat Rust Downloads

Rust
// First create some XML using namespace prefixed tags.

// Create this XML. 
// Use this online tool to generate the code from sample XML: 
// Generate Code to Create XML

// <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
//    xmlns:scm="http://www.springcm.com/atlas/webservices/v201308/scm/">
//    <soapenv:Header/>
//    <soapenv:Body>
//       <scm:AccountGetCurrent>
//          <scm:token>123</scm:token>
//       </scm:AccountGetCurrent>
//    </soapenv:Body>
// </soapenv:Envelope>

let xml = chilkat::Xml::new();
xml.set_tag("soapenv:Envelope");
let _ = xml.add_attribute("xmlns:soapenv", "http://schemas.xmlsoap.org/soap/envelope/");
let _ = xml.add_attribute("xmlns:scm", "http://www.springcm.com/atlas/webservices/v201308/scm/");
xml.update_child_content("soapenv:Header", "");
xml.update_child_content("soapenv:Body|scm:AccountGetCurrent|scm:token", "123");

// Go to the "Body" tag, regardless of namespace prefix.
let Ok(xml_body) = xml.find_child("*:Body") else {
    println!("Body child not found.");
    return;
};

// Get the full tag w/ namespace prefix:
// Output is "soapenv:Body"
println!("{}", xml_body.tag());

// Get the namespace prefix:
// Output is "soapenv"
println!("{}", xml_body.tag_ns_prefix());

// Get the unprefixed tag:
// Output is "Body"
println!("{}", xml_body.tag_unprefixed());

// Check to see if the unprefixed tag equals "Body"
let is_body_tag = xml_body.tag_unp_equals("Body");
println!("isBodyTag = {}", is_body_tag);

// Check to see if the namespace prefix equals "soapenv";
let is_soapenv = xml_body.tag_ns_equals("soapenv");
println!("isSoapenv = {}", is_soapenv);

// Change just the namespace prefix of the tag
xml_body.set_tag_ns_prefix("se");
// The tag has changed from "soapenv:Body" to "se:Body"
println!("{}", xml_body.tag());

// Change the unprefixed part of the tag.
xml_body.set_tag_unprefixed("Bodie");
// The tag has changed from "se:Body" to "se:Bodie"
println!("{}", xml_body.tag());