new($ns,$el,$attrs,$parser)
Creates a new AnyEvent::XMPP::Node object with the node tag name $el in the namespace URI $ns and the
attributes $attrs. The $parser must be the instance of "AnyEvent::XMPP::Parser" which generated this
node.
name
The tag name of this node.
namespace
Returns the namespace URI of this node.
eq($namespace_or_alias,$name)oreq($node)
Returns true whether the current element matches the tag name $name in the namespaces pointed at by
$namespace_or_alias.
You can either pass an alias that was defined in AnyEvent::XMPP::Namespaces or pass an namespace URI
in $namespace_or_alias. If no alias with the name $namespace_or_alias was found in
AnyEvent::XMPP::Namespaces it will be interpreted as namespace URI.
The first argument to eq can also be another AnyEvent::XMPP::Node instance.
eq_ns($namespace_or_alias)oreq_ns($node)
This method return true if the namespace of this instance of AnyEvent::XMPP::Node matches the
namespace described by $namespace_or_alias or the namespace of the $node which has to be another
AnyEvent::XMPP::Node instance.
See "eq" for the meaning of $namespace_or_alias.
attr($name)
Returns the contents of the $name attribute.
add_node($node)
Adds a sub-node to the current node.
nodes
Returns a list of sub nodes.
add_text($string)
Adds character data to the current node.
text
Returns the text for this node.
find_all(@path)
This method does a recursive descent through the sub-nodes and fetches all nodes that match the last
element of @path.
The elements of @path consist of a array reference to an array with two elements: the namespace key
known by the $parser and the tagname we search for.
write_on($writer)
This writes the current node out to the AnyEvent::XMPP::Writer object in $writer.
as_string()
This method returns the original character representation of this XML element (and it's children
nodes). Please note that the string is a unicode string, meaning: to get octets use:
my $octets = encode ('UTF-8', $node->as_string);
Now you can roll stunts like this:
my $libxml = XML::LibXML->new;
my $doc = $libxml->parse_string (encode ('UTF-8', $node->as_string ()));
(You can use your favorite XML parser :)
append_raw($string)
This method is called by the parser to store original strings of this element.
to_sax_events($handler)
This method takes anything that can receive SAX events. See also XML::GDOME::SAX::Builder or
XML::Handler::BuildDOM or XML::LibXML::SAX::Builder.
With this you can convert this node to any DOM level 2 structure you want:
my $builder = XML::LibXML::SAX::Builder->new;
$node->to_sax_events ($builder);
my $dom = $builder->result;
print "Canonized: " . $dom->toStringC14N . "\n";