Struct minidom::element::Element

source ·
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")
                   .ns("namespace")
                   .attr("name", "value")
                   .append("inner")
                   .build();

assert_eq!(elem.name(), "name");
assert_eq!(elem.ns(), Some("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");

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

Returns a reference to the name of this element.

Returns a reference to the prefix of this element.

Examples
use minidom::Element;

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

assert_eq!(elem.name(), "name");
assert_eq!(elem.prefix(), Some("prefix"));

Returns a reference to the namespace of this element, if it has one, else None.

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 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;

let elem = Element::builder("name").ns("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);

Returns whether the element has the given namespace.

Examples
use minidom::Element;

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

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

Parse a document from an EventReader.

Output a document to a 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>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>hello<child1 />this<child2 />is<child3 />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>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");

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

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

{
    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"));

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

Appends a text node to an Element.

Examples
use minidom::Element;

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

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

elem.append_text_node("text");

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

Appends a comment node to an Element.

Examples
use minidom::Element;

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

elem.append_comment_node("comment");

Appends a node to an Element.

Examples
use minidom::{Element, Node};

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

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>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;

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;

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);

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 !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more

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.

Emits this as a sequence of text nodes and Elements.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
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.