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).
|
__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
|
|
|
|
|
__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
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
setData(self,
data)
Set node's CDATA to provided string. Resets all previous CDATA! |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Inherited from object :
__delattr__ ,
__format__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__repr__ ,
__setattr__ ,
__sizeof__ ,
__subclasshook__
|