pub struct Element { /* private fields */ }
Expand description

A struct representing a DOM Element.

Implementations

Return a builder for an Element with the given name.

Examples
use minidom::Element;

let elem = Element::builder("name", "namespace")
                   .attr("name", "value")
                   .append("inner")
                   .build();

assert_eq!(elem.name(), "name");
assert_eq!(elem.ns(), "namespace".to_owned());
assert_eq!(elem.attr("name"), Some("value"));
assert_eq!(elem.attr("inexistent"), None);
assert_eq!(elem.text(), "inner");

Returns a bare minimum Element with this name.

Examples
use minidom::Element;

let bare = Element::bare("name", "namespace");

assert_eq!(bare.name(), "name");
assert_eq!(bare.ns(), "namespace");
assert_eq!(bare.attr("name"), None);
assert_eq!(bare.text(), "");

Returns a reference to the local name of this element (that is, without a possible prefix).

Returns a reference to the namespace of this element.

Returns a reference to the value of the given attribute, if it exists, else None.

Returns an iterator over the attributes of this element.

Example
use minidom::Element;

let elm: Element = "<elem xmlns=\"ns1\" a=\"b\" />".parse().unwrap();

let mut iter = elm.attrs();

assert_eq!(iter.next().unwrap(), ("a", "b"));
assert_eq!(iter.next(), None);

Returns an iterator over the attributes of this element, with the value being a mutable reference.

Modifies the value of an attribute.

Returns whether the element has the given name and namespace.

Examples
use minidom::{Element, NSChoice};

let elem = Element::builder("name", "namespace").build();

assert_eq!(elem.is("name", "namespace"), true);
assert_eq!(elem.is("name", "wrong"), false);
assert_eq!(elem.is("wrong", "namespace"), false);
assert_eq!(elem.is("wrong", "wrong"), false);

assert_eq!(elem.is("name", NSChoice::OneOf("namespace")), true);
assert_eq!(elem.is("name", NSChoice::OneOf("foo")), false);
assert_eq!(elem.is("name", NSChoice::AnyOf(&["foo", "namespace"])), true);
assert_eq!(elem.is("name", NSChoice::Any), true);

Returns whether the element has the given namespace.

Examples
use minidom::{Element, NSChoice};

let elem = Element::builder("name", "namespace").build();

assert_eq!(elem.has_ns("namespace"), true);
assert_eq!(elem.has_ns("wrong"), false);

assert_eq!(elem.has_ns(NSChoice::OneOf("namespace")), true);
assert_eq!(elem.has_ns(NSChoice::OneOf("foo")), false);
assert_eq!(elem.has_ns(NSChoice::AnyOf(&["foo", "namespace"])), true);
assert_eq!(elem.has_ns(NSChoice::Any), true);

Parse a document from an EventReader.

Output a document to a Writer.

Output a document to a Writer.

Output the document to quick-xml Writer

Output the document to quick-xml Writer

Like write_to() but without the <?xml?> prelude

Returns an iterator over references to every child node of this element.

Examples
use minidom::Element;

let elem: Element = "<root xmlns=\"ns1\">a<c1 />b<c2 />c</root>".parse().unwrap();

let mut iter = elem.nodes();

assert_eq!(iter.next().unwrap().as_text().unwrap(), "a");
assert_eq!(iter.next().unwrap().as_element().unwrap().name(), "c1");
assert_eq!(iter.next().unwrap().as_text().unwrap(), "b");
assert_eq!(iter.next().unwrap().as_element().unwrap().name(), "c2");
assert_eq!(iter.next().unwrap().as_text().unwrap(), "c");
assert_eq!(iter.next(), None);

Returns an iterator over mutable references to every child node of this element.

Returns an iterator over references to every child element of this element.

Examples
use minidom::Element;

let elem: Element = "<root xmlns=\"ns1\">hello<child1 xmlns=\"ns1\"/>this<child2 xmlns=\"ns1\"/>is<child3 xmlns=\"ns1\"/>ignored</root>".parse().unwrap();

let mut iter = elem.children();
assert_eq!(iter.next().unwrap().name(), "child1");
assert_eq!(iter.next().unwrap().name(), "child2");
assert_eq!(iter.next().unwrap().name(), "child3");
assert_eq!(iter.next(), None);

Returns an iterator over mutable references to every child element of this element.

Returns an iterator over references to every text node of this element.

Examples
use minidom::Element;

let elem: Element = "<root xmlns=\"ns1\">hello<c /> world!</root>".parse().unwrap();

let mut iter = elem.texts();
assert_eq!(iter.next().unwrap(), "hello");
assert_eq!(iter.next().unwrap(), " world!");
assert_eq!(iter.next(), None);

Returns an iterator over mutable references to every text node of this element.

Appends a child node to the Element, returning the appended node.

Examples
use minidom::Element;

let mut elem = Element::bare("root", "ns1");

assert_eq!(elem.children().count(), 0);

elem.append_child(Element::bare("child", "ns1"));

{
    let mut iter = elem.children();
    assert_eq!(iter.next().unwrap().name(), "child");
    assert_eq!(iter.next(), None);
}

let child = elem.append_child(Element::bare("new", "ns1"));

assert_eq!(child.name(), "new");

Appends a text node to an Element.

Examples
use minidom::Element;

let mut elem = Element::bare("node", "ns1");

assert_eq!(elem.text(), "");

elem.append_text_node("text");

assert_eq!(elem.text(), "text");

Appends a node to an Element.

Examples
use minidom::{Element, Node};

let mut elem = Element::bare("node", "ns1");

elem.append_node(Node::Text("hello".to_owned()));

assert_eq!(elem.text(), "hello");

Returns the concatenation of all text nodes in the Element.

Examples
use minidom::Element;

let elem: Element = "<node xmlns=\"ns1\">hello,<split /> world!</node>".parse().unwrap();

assert_eq!(elem.text(), "hello, world!");

Returns a reference to the first child element with the specific name and namespace, if it exists in the direct descendants of this Element, else returns None.

Examples
use minidom::{Element, NSChoice};

let elem: Element = r#"<node xmlns="ns"><a/><a xmlns="other_ns" /><b/></node>"#.parse().unwrap();
assert!(elem.get_child("a", "ns").unwrap().is("a", "ns"));
assert!(elem.get_child("a", "other_ns").unwrap().is("a", "other_ns"));
assert!(elem.get_child("b", "ns").unwrap().is("b", "ns"));
assert_eq!(elem.get_child("c", "ns"), None);
assert_eq!(elem.get_child("b", "other_ns"), None);
assert_eq!(elem.get_child("a", "inexistent_ns"), None);

Returns a mutable reference to the first child element with the specific name and namespace, if it exists in the direct descendants of this Element, else returns None.

Returns whether a specific child with this name and namespace exists in the direct descendants of the Element.

Examples
use minidom::{Element, NSChoice};

let elem: Element = r#"<node xmlns="ns"><a /><a xmlns="other_ns" /><b /></node>"#.parse().unwrap();
assert_eq!(elem.has_child("a", "other_ns"), true);
assert_eq!(elem.has_child("a", "ns"), true);
assert_eq!(elem.has_child("a", "inexistent_ns"), false);
assert_eq!(elem.has_child("b", "ns"), true);
assert_eq!(elem.has_child("b", "other_ns"), false);
assert_eq!(elem.has_child("b", "inexistent_ns"), false);

Removes the first child with this name and namespace, if it exists, and returns an Option<Element> containing this child if it succeeds. Returns None if no child matches this name and namespace.

Examples
use minidom::{Element, NSChoice};

let mut elem: Element = r#"<node xmlns="ns"><a /><a xmlns="other_ns" /><b /></node>"#.parse().unwrap();
assert!(elem.remove_child("a", "ns").unwrap().is("a", "ns"));
assert!(elem.remove_child("a", "ns").is_none());
assert!(elem.remove_child("inexistent", "inexistent").is_none());

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Converts to this type from the input type.

The associated error which can be returned from parsing.

Parses a string s to return a value of this type. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.