Package xmpp :: Module simplexml :: Class Node
[hide private]
[frames] | no frames]

Class Node

source code

Known Subclasses:
protocol.DataField, protocol.DataForm, protocol.Protocol, protocol.ErrorNode

Node class describes syntax of separate XML Node. It have a constructor that permits node creation from set of "namespace name", attributes and payload of text strings and other nodes. It does not natively support building node from text string and uses NodeBuilder class for that purpose. After creation node can be mangled in many ways so it can be completely changed. Also node can be serialised into string in one of two modes: default (where the textual representation of node describes it exactly) and "fancy" - with whitespace added to make indentation and thus make result more readable by human.

Node class have attribute FORCE_NODE_RECREATION that is defaults to False thus enabling fast node replication from the some other node. The drawback of the fast way is that new node shares some info with the "original" node that is changing the one node may influence the other. Though it is rarely needed (in xmpppy it is never needed at all since I'm usually never using original node after replication (and using replication only to move upwards on the classes tree).

Instance Methods [hide private]
 
__init__(self, tag=None, attrs={}, payload=[], parent=None, node=None)
Takes "tag" argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and "parent" argument that is another node that this one will be the child of.
source code
 
__str__(self, fancy=0)
Method used to dump node into textual representation.
source code
 
getCDATA(self)
Serialise node, dropping all tags and leaving CDATA intact.
source code
 
addChild(self, name=None, attrs={}, payload=[], namespace=None, node=None)
If "node" argument is provided, adds it as child node.
source code
 
addData(self, data)
Adds some CDATA to node.
source code
 
clearData(self)
Removes all CDATA from the node.
source code
 
delAttr(self, key)
Deletes an attribute "key"
source code
 
delChild(self, node, attrs={})
Deletes the "node" from the node's childs list, if "node" is an instance.
source code
 
getAttrs(self)
Returns all node's attributes as dictionary.
source code
 
getAttr(self, key)
Returns value of specified attribute.
source code
 
getChildren(self)
Returns all node's child nodes as list.
source code
 
getData(self)
Returns all node CDATA as string (concatenated).
source code
 
getName(self)
Returns the name of node
source code
 
getNamespace(self)
Returns the namespace of node
source code
 
getParent(self)
Returns the parent of node (if present).
source code
 
getPayload(self)
Return the payload of node i.e.
source code
 
getTag(self, name, attrs={}, namespace=None)
Filters all child nodes using specified arguments as filter.
source code
 
getTagAttr(self, tag, attr)
Returns attribute value of the child with specified name (or None if no such attribute).
source code
 
getTagData(self, tag)
Returns cocatenated CDATA of the child with specified name.
source code
 
getTags(self, name, attrs={}, namespace=None, one=0)
Filters all child nodes using specified arguments as filter.
source code
 
setAttr(self, key, val)
Sets attribute "key" with the value "val".
source code
 
setData(self, data)
Sets node's CDATA to provided string.
source code
 
setName(self, val)
Changes the node name.
source code
 
setNamespace(self, namespace)
Changes the node namespace.
source code
 
setParent(self, node)
Sets node's parent to "node".
source code
 
setPayload(self, payload, add=0)
Sets node payload according to the list specified.
source code
 
setTag(self, name, attrs={}, namespace=None)
Same as getTag but if the node with specified namespace/attributes not found, creates such node and returns it.
source code
 
setTagAttr(self, tag, attr, val)
Creates new node (if not already present) with name "tag" and sets it's attribute "attr" to value "val".
source code
 
setTagData(self, tag, val, attrs={})
Creates new node (if not already present) with name "tag" and (optionally) attributes "attrs" and sets it's CDATA to string "val".
source code
 
has_attr(self, key)
Checks if node have attribute "key".
source code
 
__getitem__(self, item)
Returns node's attribute "item" value.
source code
 
__setitem__(self, item, val)
Sets node's attribute "item" value.
source code
 
__delitem__(self, item)
Deletes node's attribute "item".
source code
 
__getattr__(self, attr)
Reduce memory usage caused by T/NT classes - use memory only when needed.
source code
Class Variables [hide private]
  FORCE_NODE_RECREATION = 0
Method Details [hide private]

__init__(self, tag=None, attrs={}, payload=[], parent=None, node=None)
(Constructor)

source code 
Takes "tag" argument as the name of node (prepended by namespace, if needed and separated from it by a space), attrs dictionary as the set of arguments, payload list as the set of textual strings and child nodes that this node carries within itself and "parent" argument that is another node that this one will be the child of. Also the __init__ can be provided with "node" argument that is either a text string containing exactly one node or another Node instance to begin with. If both "node" and other arguments is provided then the node initially created as replica of "node" provided and then modified to be compliant with other arguments.

__str__(self, fancy=0)
(Informal representation operator)

source code 
Method used to dump node into textual representation. if "fancy" argument is set to True produces indented output for readability.

getCDATA(self)

source code 
Serialise node, dropping all tags and leaving CDATA intact. That is effectively kills all formatiing, leaving only text were contained in XML.

addChild(self, name=None, attrs={}, payload=[], namespace=None, node=None)

source code 
If "node" argument is provided, adds it as child node. Else creates new node from the other arguments' values and adds it as well.

delChild(self, node, attrs={})

source code 
Deletes the "node" from the node's childs list, if "node" is an instance. Else deletes the first node that have specified name and (optionally) attributes.

getPayload(self)

source code 
Return the payload of node i.e. list of child nodes and CDATA entries. F.e. for "<node>text1<nodea/><nodeb/> text2</node>" will be returned list: ['text1', <nodea instance>, <nodeb instance>, ' text2'].

getTag(self, name, attrs={}, namespace=None)

source code 
Filters all child nodes using specified arguments as filter. Returns the first found or None if not found.

getTags(self, name, attrs={}, namespace=None, one=0)

source code 
Filters all child nodes using specified arguments as filter. Returns the list of nodes found.

setData(self, data)

source code 
Sets node's CDATA to provided string. Resets all previous CDATA!

setParent(self, node)

source code 
Sets node's parent to "node". WARNING: do not checks if the parent already present and not removes the node from the list of childs of previous parent.

setPayload(self, payload, add=0)

source code 
Sets node payload according to the list specified. WARNING: completely replaces all node's previous content. If you wish just to add child or CDATA - use addData or addChild methods.