|
Yate
|
Xml Element. More...
#include <yatexml.h>
Static Public Member Functions | |
| static bool | isXmlns (const String &str) |
| static XmlElement * | param2xml (NamedString *param, const String &tag, bool copyXml=false) |
| static NamedString * | xml2param (XmlElement *xml, const String *tag, bool copyXml=false) |
| static void | xml2param (NamedList &list, XmlElement *parent, const String *tag, bool copyXml=false) |
Static Public Member Functions inherited from GenObject | |
| static void * | getObject (const String &name, const GenObject *obj) |
| static bool | getObjCounting () |
| static void | setObjCounting (bool enable) |
| static NamedCounter * | getObjCounter (const String &name, bool create=true) |
| static ObjList & | getObjCounters () |
Static Public Attributes | |
| static const String | s_ns |
| static const String | s_nsPrefix |
Xml Element.
Xml Element from a Xml document
| XmlElement | ( | const NamedList & | element, |
| bool | empty, | ||
| XmlParent * | parent = 0 |
||
| ) |
Constructor
| element | The NamedList name represent the element name and the param the attributes |
| empty | False if has children |
| parent | The parent of this element |
| XmlElement | ( | const char * | name, |
| bool | complete = true |
||
| ) |
Constructor. Creates a new complete and empty element
| name | The name of the element |
| complete | False to build an incomplete element |
Constructor. Create a new element with a text child
| name | The name of the element |
| value | Element text child value |
| complete | False to build an incomplete element |
| XmlElement | ( | const XmlElement & | orig | ) |
Copy constructor
| orig | Original XmlElement |
|
virtual |
Destructor
Add inherited namespaces from a list
| list | The list of namespaces |
Obtain an attribute value for the given name
| name | The name of the attribute |
References NamedList::getValue().
Retrieve the list of attributes
|
inline |
Retrieve a child's text
| name | Name (tag) of the child |
| ns | Optional child namespace |
| noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored ns is not 0 |
References XmlElement::findFirstChild().
|
inlinevirtual |
Helper method to clear the children list
Reimplemented from XmlParent.
References XmlFragment::clearChildren().
|
inline |
Copy element attributes to a list of parameters
| list | Destination list |
| prefix | Prefix to be added to each attribute name |
|
inlinevirtual |
|
inline |
|
inline |
Find the first XmlElement child of this XmlElement
| name | Name of the child |
| ns | Optional child namespace |
| noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlFragment::findElement(), and XmlElement::getChildren().
|
inline |
Find the first XmlElement child of this XmlElement
| name | Optional name of the child |
| ns | Optional child namespace |
| noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlFragment::findElement(), and XmlElement::getChildren().
Referenced by XmlElement::childText(), XmlElement::findNextChild(), and XmlElement::pop().
|
inline |
Finds next XmlElement child of this XmlElement
| name | Name of the child |
| prev | Previous child |
| ns | Optional child namespace |
| noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlElement::findNextChild().
|
inline |
Finds next XmlElement child of this XmlElement
| prev | Previous child |
| name | Optional name of the child |
| ns | Optional child namespace |
| noPrefix | True to compare the tag without namespace prefix, false to include namespace prefix when comparing the given tag. This parameter is ignored if name is 0 or ns is not 0 |
References XmlFragment::findElement(), XmlElement::findFirstChild(), XmlElement::getChildren(), and ObjList::skipNext().
Referenced by XmlElement::findNextChild().
Obtain an attribute value for the given name
| name | The name of the attribute |
References NamedList::getParam().
Referenced by XmlElement::hasAttribute().
Helper method to obtain the children list
Reimplemented from XmlParent.
References XmlFragment::getChildren().
Referenced by XmlElement::findFirstChild(), XmlElement::findFirstChild(), and XmlElement::findNextChild().
| XmlChild * getFirstChild | ( | ) |
Get first XmlChild of this XmlElement
Retrieve the element's tag (without prefix) and namespace
| tag | Pointer to element tag |
| ns | Pointer to element's namespace (may be 0 for unprefixed tags) |
Check if the element has an attribute with a requested value
| name | The name of the attribute |
| value | The value to check |
References XmlElement::getAttribute().
Verify if this element belongs to the given namespace
| ns | The namespace to compare with |
References XmlElement::xmlns().
Retrieve the list of inherited namespaces
|
inline |
Check if this element must be processed in the default namespace (its tag is not prefixed)
Check if a string represents a namespace attribute name
| str | The string to check |
References XmlElement::s_ns, and XmlElement::s_nsPrefix.
|
static |
Build an XML element from a list parameter. Parameter name will be set in a 'name' attribute. Parameter value will be set in a 'value' attribute Handle NamedPointer parameters carrying DataBlock, NamedList and XmlElement objects (a 'type' attribute is added to the created element). DataBlock: Encode using BASE64 and add it as element text NamedList: The name is added as element text. The function is called again for each list parameter XmlElement: Added as child to newly created element
| param | The parameter to convert |
| tag | XmlElement tag |
| copyXml | True to copy XmlElement objects instead of just remove them from the parameter |
|
inline |
Retrieve an XmlElement parent of this one
References XmlParent::element().
|
inline |
Extract the first child element
References XmlElement::findFirstChild(), and XmlFragment::removeChild().
Remove an attribute
| name | Attribute name |
References NamedList::clearParam().
Referenced by XmlElement::setAttributeValid().
Replaces all ${paramname} in element's attributes and children with the corresponding parameters
| params | List of parameters |
Reimplemented from XmlChild.
Add or replace an attribute
| name | Attribute name |
| value | Attribute value |
References NamedList::setParam().
Set element attributes from a list of parameters
| list | List of attributes |
| prefix | Add only the attributes that start with this prefix. = If NULL, it will set as attributes the whole parameter list |
| skipPrefix | Skip over the prefix when building attribute name |
Add or replace an attribute. Clears it if value is empty
| name | Attribute name |
| value | Attribute value |
References XmlElement::removeAttribute(), and NamedList::setParam().
| void setInheritedNs | ( | const XmlElement * | xml = 0, |
| bool | inherit = true |
||
| ) |
Set inherited namespaces from a given element. Reset them anyway
| xml | The source element used to set inherited namespaces |
| inherit | Copy element's inherited namespaces if it doesn't have a parent |
Set this element's parent. Update inherited namespaces
Reimplemented from XmlChild.
Set text for first XmlText element found in this XmlElement's children If child text element does not exist, create it and append it to the element's children.
| text | Text to set to the XmlElement. If null, the first found XmlText element will be deleted. |
Set element's unprefixed tag, don't change namespace prefix
| s | New element's tag |
| bool setXmlns | ( | const String & | name = String::empty(), |
| bool | addAttr = false, |
||
| const String & | value = String::empty() |
||
| ) |
Set the element's namespace
| name | The namespace name (element prefix). Can be the default namespace attribute name (empty means the default one) |
| addAttr | True to add a non empty, not repeating, namespace attribute to the list |
| value | Namespace value (ignored if addAttr is false) |
| void toString | ( | String & | dump, |
| bool | escape = true, |
||
| const String & | indent = String::empty(), |
||
| const String & | origIndent = String::empty(), |
||
| bool | completeOnly = true, |
||
| const String * | auth = 0 |
||
| ) | const |
Build (append to) a String from this XmlElement
| dump | The destination string |
| escape | True if the attributes values need to be escaped |
| indent | Spaces for output |
| origIndent | Original indent |
| completeOnly | True to build only if complete |
| auth | Optional list of tag and attribute names to be replaced with '***'. This parameter can be used when the result will be printed to output to avoid printing authentication data to output. The array must end with an empty string |
Retrieve the element's tag unprefixed (namespace prefix removed)
References NamedString::name().
|
static |
Build and add list parameters from XML element children. Each parameter will be taken from 'name' and 'value' attributes. See param2xml for more info
| list | Destination list |
| parent | The XML element to process |
| tag | Child XmlElement tag to handle |
| copyXml | True to copy XmlElement objects instead of just remove them from parent |
|
static |
Build a list parameter from xml element See param2xml for more info
| xml | The XML element to process |
| tag | Child XmlElement tag to handle |
| copyXml | True to copy XmlElement objects instead of just remove them from parent |
|
inlinevirtual |
|
inline |
Retrieve the element's namespace
References XmlElement::s_ns, XmlElement::s_nsPrefix, and XmlElement::xmlnsAttribute().
Referenced by XmlElement::hasXmlns().
Retrieve a namespace attribute. Search in parent or inherited for it
Referenced by XmlElement::xmlns().
Default namespace attribute name
Referenced by XmlElement::isXmlns(), and XmlElement::xmlns().
Namespace attribute name perfix
Referenced by XmlElement::isXmlns(), and XmlElement::xmlns().