xmpp.simplexml.Node

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.