ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



XML::LibXML::Element(3)              User Contributed Perl Documentation             XML::LibXML::Element(3)



NAME
       XML::LibXML::Element - XML::LibXML Class for Element Nodes

SYNOPSIS
         $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,$localname);
         @nodes = $node->getElementsByLocalName($localname);
         $node->appendWellBalancedChunk( $chunk );
         $node->appendText( $PCDATA );
         $node->appendTextNode( $PCDATA );
         $node->appendTextChild( $childname , $PCDATA );
         $node->setNamespace( $nsURI , $nsPrefix, $activate );

DESCRIPTION
       new
             $node = XML::LibXML::Element->new( $name );

           This function creates a new node unbound to any DOM.

       setAttribute
             $node->setAttribute( $aname, $avalue );

           This method sets or replaces the node's attribute $aname to the value $avalue

       setAttributeNS
             $node->setAttributeNS( $nsURI, $aname, $avalue );

           Namespaceversion of setAttribute.

       getAttribute
             $avalue = $node->getAttribute( $aname );

           If $node has an attribute with the name $aname, the value of this attribute will get returned.

       getAttributeNS
             $avalue = $node->setAttributeNS( $nsURI, $aname );

           Retrieves an attribute value by local name and namespace URI.

       getAttributeNode
             $attrnode = $node->getAttributeNode( $aname );

           Retrieve an attribute node by name. If no attribute with a given name exists, undef is returned.

       getAttributeNodeNS
             $attrnode = $node->getAttributeNodeNS( $namespaceURI, $aname );

           Retrieves an attribute node by local name and namespace URI. If no attribute with a given
           localname and namespace exists, undef is returned.

       removeAttribute
             $node->removeAttribute( $aname );

           The method removes the attribute $aname from the node's attribute list, if the attribute can be
           found.

       removeAttributeNS
             $node->removeAttributeNS( $nsURI, $aname );

           Namespace version of removeAttribute

       hasAttribute
             $boolean = $node->hasAttribute( $aname );

           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
             $boolean = $node->hasAttributeNS( $nsURI, $aname );

           namespace version of hasAttribute

       getChildrenByTagName
             @nodes = $node->getChildrenByTagName($tagname);

           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
             @nodes = $node->getChildrenByTagNameNS($nsURI,$tagname);

           Namespace version of getChildrenByTagName.

           If this function is called in SCALAR context, it returns the number of Elements found.

       getElementsByTagName
             @nodes = $node->getElementsByTagName($tagname);

           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 qualified tagname which is in case of
           namespace useage prefix and local name

           In SCALAR context this function returns a XML::LibXML::NodeList object.

       getElementsByTagNameNS
             @nodes = $node->getElementsByTagNameNS($nsURI,$localname);

           Namespace version of getElementsByTagName as found in the DOM spec.

           In SCALAR context this function returns a XML::LibXML::NodeList object.

       getElementsByLocalName
             @nodes = $node->getElementsByLocalName($localname);

           This function is not found in the DOM specification. It is a mix of getElementsByTagName and
           getElementsByTagNameNS. 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
             $node->appendWellBalancedChunk( $chunk );

           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 appendWellBalancedChunk() 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 control the flow of a script.

       appendText
             $node->appendText( $PCDATA );

           alias for appendTextNode().

       appendTextNode
             $node->appendTextNode( $PCDATA );

           This wrapper function lets you add a string directly to an element node.

       appendTextChild
             $node->appendTextChild( $childname , $PCDATA );

           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
             $node->setNamespace( $nsURI , $nsPrefix, $activate );

           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
           additional activate parameter.

           The activate parameter is most useful: If this parameter is set to FALSE (0), the namespace is
           simply added to the namespacelist of the node, while the element's namespace itself is not
           altered. Nevertheless activate is set to TRUE (1) on default. In this case the namespace
           automatically is used as the nodes effective 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

              <http://foobar.org">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 multiple 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 );

AUTHORS
       Matt Sergeant, Christian Glahn, Petr Pajas,

VERSION
       1.60

COPYRIGHT
       2001-2006, AxKit.com Ltd; 2002-2006 Christian Glahn; 2006 Petr Pajas, All rights reserved.



perl v5.8.8                                      2006-08-26                          XML::LibXML::Element(3)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.