Package nbxmpp :: Module simplexml :: Class Node

[hide private]
[frames] | no frames]

# Class Node

source code

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, nsp=None, node_built=False, 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. 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.

source code

lookup_nsp(self, pfx=`'````'`) | source code

__str__(self, fancy=0) Method used to dump node into textual representation. If "fancy" argument is set to True produces indented output for readability | source code

addChild(self, name=None, attrs=`{``}`, payload=`[``]`, namespace=None, node=None) If "node" argument is provided, adds it as child node. Else creates new node from the other arguments' values and adds it as well | source code

addData(self, data) Add some CDATA to node | source code

clearData(self) Remove all CDATA from the node | source code

delAttr(self, key) Delete an attribute "key" | source code

delChild(self, node, attrs=`{``}`) Delete the "node" from the node's childs list, if "node" is an instance. Else delete the first node that have specified name and (optionally) attributes | source code

getAttrs(self) Return all node's attributes as dictionary | source code

getAttr(self, key) Return value of specified attribute | source code

getChildren(self) Return all node's child nodes as list | source code

getData(self) Return all node CDATA as string (concatenated) | source code

getName(self) Return the name of node | source code

getNamespace(self) Return 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. 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'] | source code

getTag(self, name, attrs=`{``}`, namespace=None) Filter all child nodes using specified arguments as filter. Return the first found or None if not found | source code

getTagAttr(self, tag, attr) Return attribute value of the child with specified name (or None if no such attribute) | source code

getTagData(self, tag) Return cocatenated CDATA of the child with specified name | source code

getTags(self, name, attrs=`{``}`, namespace=None, one=0) Filter all child nodes using specified arguments as filter. Returns the list of nodes found | source code

iterTags(self, name, attrs=`{``}`, namespace=None) Iterate over all children using specified arguments as filter | source code

setAttr(self, key, val) Set attribute "key" with the value "val" | source code

setData(self, data) Set node's CDATA to provided string. Resets all previous CDATA! | source code

setName(self, val) Change the node name | source code

setNamespace(self, namespace) Changes the node namespace | source code

setParent(self, node) Set 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 | source code

setPayload(self, payload, add=0) Set 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 | 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) Create new node (if not already present) with name "tag" and set 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) Check if node have attribute "key" | source code

__getitem__(self, item) Return node's attribute "item" value | source code

__setitem__(self, item, val) Set node's attribute "item" value | source code

__delitem__(self, item) Delete node's attribute "item" | source code

__contains__(self, item) Check if node has attribute "item" | source code

__getattr__(self, attr) Reduce memory usage caused by T/NT classes - use memory only when needed | source code

Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__repr__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]

| FORCE_NODE_RECREATION = `0`

Properties | [hide private]

Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, tag=None, attrs=`{``}`, payload=`[``]`, parent=None, nsp=None, node_built=False, 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.

Overrides: object.__init__

### lookup_nsp(self, pfx=`'````'`)

source code

### __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

Overrides: object.__str__

### 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

### addData(self, data)

source code

Add some CDATA to node

### clearData(self)

source code

Remove all CDATA from the node

### delAttr(self, key)

source code

Delete an attribute "key"

### delChild(self, node, attrs=`{``}`)

source code

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

### getAttrs(self)

source code

Return all node's attributes as dictionary

### getAttr(self, key)

source code

Return value of specified attribute

### getChildren(self)

source code

Return all node's child nodes as list

### getData(self)

source code

Return all node CDATA as string (concatenated)

### getName(self)

source code

Return the name of node

### getNamespace(self)

source code

Return the namespace of node

### getParent(self)

source code

Returns the parent of node (if present)

### 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

Filter all child nodes using specified arguments as filter. Return the first found or None if not found

### getTagAttr(self, tag, attr)

source code

Return attribute value of the child with specified name (or None if no such attribute)

### getTagData(self, tag)

source code

Return cocatenated CDATA of the child with specified name

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

source code

Filter all child nodes using specified arguments as filter. Returns the list of nodes found

### iterTags(self, name, attrs=`{``}`, namespace=None)

source code

Iterate over all children using specified arguments as filter

### setAttr(self, key, val)

source code

Set attribute "key" with the value "val"

### setData(self, data)

source code

Set node's CDATA to provided string. Resets all previous CDATA!

### setName(self, val)

source code

Change the node name

### setNamespace(self, namespace)

source code

Changes the node namespace

### setParent(self, node)

source code

Set 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

Set 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

### setTag(self, name, attrs=`{``}`, namespace=None)

source code

Same as getTag but if the node with specified namespace/attributes not found, creates such node and returns it

### setTagAttr(self, tag, attr, val)

source code

Create new node (if not already present) with name "tag" and set it's attribute "attr" to value "val"

### setTagData(self, tag, val, attrs=`{``}`)

source code

Creates new node (if not already present) with name "tag" and (optionally) attributes "attrs" and sets it's CDATA to string "val"

### has_attr(self, key)

source code

Check if node have attribute "key"

### __getitem__(self, item)
(Indexing operator)

source code

Return node's attribute "item" value

### __setitem__(self, item, val)
(Index assignment operator)

source code

Set node's attribute "item" value

### __delitem__(self, item)
(Index deletion operator)

source code

Delete node's attribute "item"

### __contains__(self, item)
(In operator)

source code

Check if node has attribute "item"

### __getattr__(self, attr)
(Qualification operator)

source code

Reduce memory usage caused by T/NT classes - use memory only when needed

Class Variable Details | [hide private]

### FORCE_NODE_RECREATION

Value:

      0