element(3)
NAME
- XML::LibXML::Element - The DOM Element Class
- synopsis
- use XML::LibXML
- $node = XML::LibXML::Element->new( $name )
$node->setAttribute( $aname, $avalue );
$node->setAttributeNS( $nsURI, $aname, $avalue );
$avalue = $node->getAttribute( $aname );
$avalue = $node->setAttributeNS( $nsURI, $aname );
$attrnode = $node->getAttributeNode( $aname );
$attrnode = $node->getAttributeNodeNS( $namespaceURI, - $aname );
$node->removeAttribute( $aname );
$node->removeAttributeNS( $nsURI, $aname );
$boolean = $node->hasAttribute( $aname );
$boolean = $node->hasAttributeNS( $nsURI, $aname );
@nodes = $node->getChildrenByTagName($tagname);
@nodes = $node->getChildrenByTagNameNS($nsURI,$tagname);
@nodes = $node->getElementsByTagName($tagname);
@nodes = $node->getElementsByTagNameNS($nsURI,$local - name);
@nodes = $node->getElementsByLocalName($localname);
$node->appendWellBalancedChunk( $chunk )
$node->appendText( $PCDATA );
$node->appendTextNode( $PCDATA );
$node->appendTextChild( $childname , $PCDATA )
$node->setNamespace( $nsURI , $nsPrefix, $activate )
DESCRIPTION
Methods
new This function creates a new node unbound to any DOM.
- setAttribute
- This method sets or replaces the node's attribute
$aname to the value $avalue - setAttributeNS
- Namespaceversion of setAttribute.
- getAttribute
- If $node has an attribute with the name $aname, the value of this attribute will get returned.
- getAttributeNS
- Namespaceversion of getAttribute.
- getAttributeNode
- Returns the attribute as a node if the attribute
exists. If the Attribute does not exists undef will be
returned. - getAttributeNodeNS
- Namespaceversion of getAttributeNode.
- removeAttribute
- The method removes the attribute $aname from the
node's attribute list, if the attribute can be found. - removeAttributeNS
- Namespace version of removeAttribute
- hasAttribute
- This funcion tests if the named attribute is set for
the node. If the attribute is specified, TRUE (1) will
be returned, otherwise the returnvalue is FALSE (0). - hasAttributeNS
- namespace version of hasAttribute
- getChildrenByTagName
- The function gives direct access to all childnodes of
the current node with the same tagname. It makes
things a lot easier if you need to handle big
datasets. - If this function is called in SCALAR context, it
returns the number of Elements found. - getChildrenByTagNameNS
- Namespace version of getChildrenByTagName.
- If this function is called in SCALAR context, it
returns the number of Elements found. - getElementsByTagName
- This function is part of the spec it fetches all
descendants of a node with a given tagname. If one is
as confused with tagname as I was, tagname is a quali fied tagname which is in case of namespace useage pre
fix and local name - In SCALAR context this function returns a
XML::LibXML::NodeList object. - getElementsByTagNameNS
- Namespace version of getElementsByTagName as found in the DOM spec.
- In SCALAR context this function returns a
XML::LibXML::NodeList object. - getElementsByLocalName
- This function is not found in the DOM specification.
It is a mix of getElementsByTagName and getElementsBy
TagNameNS. It will fetch all tags matching the given
local-name. This alows one to select tags with the
same local name across namespace borders. - In SCALAR context this function returns a
XML::LibXML::NodeList object. - appendWellBalancedChunk
- Sometimes it is nessecary to append a string coded XML
Tree to a node. appendWellBalancedChunk will do the trick for you. But this is only done if the String is
well-balanced. - Note that aappppeennddWWeellllBBaallaanncceeddCChhuunnkk(()) is only left for
compatibility reasons. Implicitly it
- uses
my $fragment = $parser->parse_xml_chunk( $chunk );
$node->appendChild( $fragment ); - This form is more explicit and makes it easier to con
trol the flow of a script. - appendText
- alias for appendTextNode().
- appendTextNode
- This wrapper function lets you add a string directly
to an element node. - appendTextChild
- Somewhat similar with appendTextNode: It lets you set an Element, that contains only a text node directly by specifying the name and the text content.
- setNamespace
- setNamespace() allows one to apply a namespace to an
element. The function takes three parameters: 1. the
namespace URI, which is required and the two optional
values prefix, which is the namespace prefix, as it
should be used in child elements or attributes as well
as the additionally activate parameter. - The activate parameter is most usefull: If this param
eter is set to FALSE (0), the namespace is simply
added to the namespacelist of the node, while the ele
ment's namespace itself is not altered. Nevertheless
activate is set to TRUE (1) on default. In this case
the namespace automaticly is used as the nodes effec
tive namespace. This means the namespace prefix is
added to the node name and if there was a namespace
already active for the node, this will be replaced
(but not removed from the global namespace list) - The following example may clarify this:
my $e1 = $doc->createElement("bar");
$e1->setNamespace("http://foobar.org", "foo") - results
<foo:bar xmlns:foo="http://foobar.org"/> - while
my $e2 = $doc->createElement("bar");
$e2->setNamespace("http://foobar.org", "foo",0) - results only
<bar xmlns:foo="http://foobar.org"/> - By using $activate == 0 it is possible to apply multi
ple namepace declarations to a single element. - Alternativly you can call setAttribute() simply to
declare a new namespace for a node, without activating
it:
$e2->setAttribute( "xmlns:foo", "http://bar.org" ); - has the same result as
$e2->setNamespace("http://foobar.org", "foo", 0)
AUTHOR
Matt Sergeant, Christian Glahn
SEE ALSO
XML::LibXML, XML::LibXML::Node, XML::LibXML::Document,
XML::LibXML::Attr, XML::LibXML::Text, XML::LibXML::Com
ment, XML::LibXML::DocumentFragment
VERSION
- 1.53