Trait xrust::item::Node

source ·
pub trait Node: Clone {
    type NodeIterator: Iterator<Item = Self>;

Show 33 methods // Required methods fn node_type(&self) -> NodeType; fn name(&self) -> QualifiedName; fn value(&self) -> Value; fn to_string(&self) -> String; fn to_xml(&self) -> String; fn to_xml_with_options(&self, od: &OutputDefinition) -> String; fn is_same(&self, other: &Self) -> bool; fn document_order(&self) -> Vec<usize>; fn cmp_document_order(&self, other: &Self) -> Ordering; fn child_iter(&self) -> Self::NodeIterator; fn ancestor_iter(&self) -> Self::NodeIterator; fn owner_document(&self) -> Self; fn descend_iter(&self) -> Self::NodeIterator; fn next_iter(&self) -> Self::NodeIterator; fn prev_iter(&self) -> Self::NodeIterator; fn attribute_iter(&self) -> Self::NodeIterator; fn get_attribute(&self, a: &QualifiedName) -> Value; fn new_element(&self, qn: QualifiedName) -> Result<Self, Error>; fn new_text(&self, v: Value) -> Result<Self, Error>; fn new_attribute(&self, qn: QualifiedName, v: Value) -> Result<Self, Error>; fn new_comment(&self, v: Value) -> Result<Self, Error>; fn new_processing_instruction( &self, qn: QualifiedName, v: Value ) -> Result<Self, Error>; fn push(&mut self, n: Self) -> Result<(), Error>; fn pop(&mut self) -> Result<(), Error>; fn insert_before(&mut self, n: Self) -> Result<(), Error>; fn add_attribute(&self, att: Self) -> Result<(), Error>; fn shallow_copy(&self) -> Result<Self, Error>; fn deep_copy(&self) -> Result<Self, Error>; fn get_canonical(&self) -> Result<Self, Error>; // Provided methods fn to_json(&self) -> String { ... } fn is_element(&self) -> bool { ... } fn first_child(&self) -> Option<Self> where Self: Sized { ... } fn parent(&self) -> Option<Self> where Self: Sized { ... }
}
Expand description

Nodes make up a document tree. Nodes must be fully navigable. The tree must be mutable but also stable (i.e. removing a node from the tree does not invalidate the remaining nodes).

Some nodes have names, such as elements. Some nodes have values, such as text or comments. Some have both a name and a value, such as attributes and processing instructions.

Element nodes have children and attributes.

Required Associated Types§

source

type NodeIterator: Iterator<Item = Self>

Required Methods§

source

fn node_type(&self) -> NodeType

Get the type of the node

source

fn name(&self) -> QualifiedName

Get the name of the node. If the node doesn’t have a name, then returns a QualifiedName with an empty string for it’s localname.

source

fn value(&self) -> Value

Get the value of the node. If the node doesn’t have a value, then returns a Value that is an empty string.

source

fn to_string(&self) -> String

Get the string value of the node. See XPath ???

source

fn to_xml(&self) -> String

Serialise the node as XML

source

fn to_xml_with_options(&self, od: &OutputDefinition) -> String

Serialise the node as XML, with options such as indentation.

source

fn is_same(&self, other: &Self) -> bool

Check if two Nodes are the same Node

source

fn document_order(&self) -> Vec<usize>

Get the document order of the node. The value returned is relative to the document containing the node. Depending on the implementation, this value may be volatile; adding or removing nodes to/from the document may invalidate the ordering.

source

fn cmp_document_order(&self, other: &Self) -> Ordering

Compare the document order of this node with another node in the same document.

source

fn child_iter(&self) -> Self::NodeIterator

An iterator over the children of the node

source

fn ancestor_iter(&self) -> Self::NodeIterator

An iterator over the ancestors of the node

source

fn owner_document(&self) -> Self

Get the document node

source

fn descend_iter(&self) -> Self::NodeIterator

An iterator over the descendants of the node

source

fn next_iter(&self) -> Self::NodeIterator

An iterator over the following siblings of the node

source

fn prev_iter(&self) -> Self::NodeIterator

An iterator over the preceding siblings of the node

source

fn attribute_iter(&self) -> Self::NodeIterator

An iterator over the attributes of an element

source

fn get_attribute(&self, a: &QualifiedName) -> Value

Get an attribute of the node. Returns a copy of the attribute’s value. If the node does not have an attribute of the given name, a value containing an empty string is returned.

source

fn new_element(&self, qn: QualifiedName) -> Result<Self, Error>

Create a new element-type node in the same document tree. The new node is not attached to the tree.

source

fn new_text(&self, v: Value) -> Result<Self, Error>

Create a new text-type node in the same document tree. The new node is not attached to the tree.

source

fn new_attribute(&self, qn: QualifiedName, v: Value) -> Result<Self, Error>

Create a new attribute-type node in the same document tree. The new node is not attached to the tree.

source

fn new_comment(&self, v: Value) -> Result<Self, Error>

Create a new comment-type node in the same document tree. The new node is not attached to the tree.

source

fn new_processing_instruction( &self, qn: QualifiedName, v: Value ) -> Result<Self, Error>

Create a new processing-instruction-type node in the same document tree. The new node is not attached to the tree.

source

fn push(&mut self, n: Self) -> Result<(), Error>

Append a node to the child list

source

fn pop(&mut self) -> Result<(), Error>

Remove a node from the tree

source

fn insert_before(&mut self, n: Self) -> Result<(), Error>

Insert a node in the child list before the given node. The node will be detached from it’s current position prior to insertion.

source

fn add_attribute(&self, att: Self) -> Result<(), Error>

Set an attribute. self must be an element-type node. att must be an attribute-type node.

source

fn shallow_copy(&self) -> Result<Self, Error>

Shallow copy the node, i.e. copy only the node, but not it’s attributes or content.

source

fn deep_copy(&self) -> Result<Self, Error>

Deep copy the node, i.e. the node itself and it’s attributes and descendants. The resulting top-level node is unattached.

source

fn get_canonical(&self) -> Result<Self, Error>

Canonical XML representation of the node

Provided Methods§

source

fn to_json(&self) -> String

Serialise the node as JSON

source

fn is_element(&self) -> bool

Check if a node is an element-type

source

fn first_child(&self) -> Option<Self>
where Self: Sized,

Get the first child of the node, if there is one

source

fn parent(&self) -> Option<Self>
where Self: Sized,

Get the parent of the node. Top-level nodes do not have parents, also nodes that have been detached from the tree.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Node for RNode

§

type NodeIterator = Box<dyn Iterator<Item = Rc<Node>>>