libUPnP 1.14.19
Data Structures | Macros | Typedefs | Enumerations | Functions
ixmlparser.h File Reference
#include "ixml.h"
#include "ixmlmembuf.h"
Include dependency graph for ixmlparser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _IXML_NamespaceURI
 
struct  _IXML_ElementStack
 
struct  _Parser
 

Macros

#define QUOT   """
 
#define LT   "<"
 
#define GT   ">"
 
#define APOS   "'"
 
#define AMP   "&"
 
#define ESC_HEX   "&#x"
 
#define ESC_DEC   "&#"
 

Typedefs

typedef struct _IXML_NamespaceURI IXML_NamespaceURI
 
typedef struct _IXML_ElementStack IXML_ElementStack
 
typedef struct _Parser Parser
 

Enumerations

enum  PARSER_STATE { eELEMENT , eATTRIBUTE , eCONTENT }
 

Functions

int Parser_isValidXmlName (const DOMString name)
 Check to see whether name is a valid xml name.
 
void Parser_setErrorChar (char c)
 Sets the error character.
 
void Parser_freeNodeContent (IXML_Node *IXML_Nodeptr)
 Fees a node contents.
 
int Parser_LoadDocument (IXML_Document **retDoc, const char *xmlFile, int file)
 Parses a xml file and return the DOM tree.
 
int Parser_setNodePrefixAndLocalName (IXML_Node *newIXML_NodeIXML_Attr)
 Set the node prefix and localName as defined by the nodeName in the form of ns:name.
 
void ixmlAttr_init (IXML_Attr *attrNode)
 
int ixmlElement_setTagName (IXML_Element *element, const char *tagName)
 Set the given element's tagName.
 
void ixmlNamedNodeMap_init (IXML_NamedNodeMap *nnMap)
 Initializes a NamedNodeMap object.
 
int ixmlNamedNodeMap_addToNamedNodeMap (IXML_NamedNodeMap **nnMap, IXML_Node *add)
 Add a node to a NamedNodeMap.
 
int ixmlNodeList_addToNodeList (IXML_NodeList **nList, IXML_Node *add)
 Add a node to nodelist.
 
void ixmlNode_init (IXML_Node *nodeptr)
 Intializes a node.
 
int ixmlNode_compare (IXML_Node *srcNode, IXML_Node *destNode)
 Compare two nodes to see whether they are the same node. Parent, sibling and children node are ignored.
 
void ixmlNode_getElementsByTagName (IXML_Node *n, const char *tagname, IXML_NodeList **list)
 Returns a nodeList of all descendant Elements with a given tagName, in the order in which they are encountered in a traversal of this element tree.
 
void ixmlNode_getElementsByTagNameNS (IXML_Node *n, const char *namespaceURI, const char *localName, IXML_NodeList **list)
 Returns a nodeList of all the descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Elememt tree.
 
int ixmlNode_setNodeName (IXML_Node *node, const DOMString qualifiedName)
 
int ixmlNode_setNodeProperties (IXML_Node *destNode, IXML_Node *src)
 
void ixmlNodeList_init (IXML_NodeList *nList)
 Initializes a nodelist.
 

Function Documentation

◆ ixmlElement_setTagName()

int ixmlElement_setTagName ( IXML_Element element,
const char *  tagName 
)

Set the given element's tagName.

Returns
One of the following:
  • IXML_SUCCESS, if successfull.
  • IXML_FAILED, if element of tagname is NULL.
  • IXML_INSUFFICIENT_MEMORY, if there is no memory to allocate the buffer for the element's tagname.
Parameters
[in]elementThe element to change the tagname.
[in]tagNameThe new tagName for the element.

Referenced by ixmlNode_cloneElement().

◆ ixmlNamedNodeMap_addToNamedNodeMap()

int ixmlNamedNodeMap_addToNamedNodeMap ( IXML_NamedNodeMap **  nnMap,
IXML_Node add 
)

Add a node to a NamedNodeMap.

Returns
IXML_SUCCESS or failure.

References ixmlNamedNodeMap_init().

Referenced by ixmlNode_getAttributes().

◆ ixmlNamedNodeMap_init()

void ixmlNamedNodeMap_init ( IXML_NamedNodeMap nnMap)

Initializes a NamedNodeMap object.

Parameters
[in]nnMapThe named node map to process.

Referenced by ixmlNamedNodeMap_addToNamedNodeMap(), and ixmlNode_getAttributes().

◆ ixmlNode_compare()

int ixmlNode_compare ( IXML_Node srcNode,
IXML_Node destNode 
)

Compare two nodes to see whether they are the same node. Parent, sibling and children node are ignored.

Returns
  • 1, the two nodes are the same.
  • 0, the two nodes are not the same.
Parameters
[in]srcNodeThe first Node.
[in]destNodeThe second Node.

Referenced by ixmlElement_findAttributeNode().

◆ ixmlNode_getElementsByTagName()

void ixmlNode_getElementsByTagName ( IXML_Node n,
const char *  tagname,
IXML_NodeList **  list 
)

Returns a nodeList of all descendant Elements with a given tagName, in the order in which they are encountered in a traversal of this element tree.

Parameters
[in]nThe Node tree.
[in]tagnameThe tag name to match.
[out]listThe output NodeList.

References ixmlNode_getElementsByTagNameRecursive(), ixmlNode_getFirstChild(), ixmlNode_getNodeName(), ixmlNode_getNodeType(), and ixmlNodeList_addToNodeList().

◆ ixmlNode_getElementsByTagNameNS()

void ixmlNode_getElementsByTagNameNS ( IXML_Node n,
const char *  namespaceURI,
const char *  localName,
IXML_NodeList **  list 
)

Returns a nodeList of all the descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Elememt tree.

Parameters
[in]nThe Element tree.
[in]namespaceURIThe name space to match.
[in]localNameThe local name to match.
[out]listThe output NodeList.

References DOMString, ixmlNode_getElementsByTagNameNSRecursive(), ixmlNode_getFirstChild(), ixmlNode_getLocalName(), ixmlNode_getNamespaceURI(), ixmlNode_getNodeType(), and ixmlNodeList_addToNodeList().

◆ ixmlNode_init()

void ixmlNode_init ( IXML_Node nodeptr)

Intializes a node.

Parameters
[in]nodeptrThe Node to iniatialize.

Referenced by ixmlNode_cloneTextNode(), and Parser_parseDocument().

◆ ixmlNode_setNodeName()

int ixmlNode_setNodeName ( IXML_Node node,
const DOMString  qualifiedName 
)
Returns
Parameters
[in]nodeThe Node.
[in]qualifiedName.

References Parser_setNodePrefixAndLocalName().

Referenced by ixmlNode_cloneAttr(), ixmlNode_cloneCDATASect(), ixmlNode_cloneElement(), ixmlNode_cloneTextNode(), and ixmlNode_newDoc().

◆ ixmlNode_setNodeProperties()

int ixmlNode_setNodeProperties ( IXML_Node destNode,
IXML_Node src 
)
Returns
Parameters
[in]destNode.
[in]src.

References ixmlNode_setLocalName(), ixmlNode_setNodeValue(), and ixmlNode_setPrefix().

Referenced by Parser_processAttributeName(), and Parser_processElementName().

◆ ixmlNodeList_addToNodeList()

int ixmlNodeList_addToNodeList ( IXML_NodeList **  nList,
IXML_Node add 
)

Add a node to nodelist.

Parameters
[in]nListThe pointer to the nodelist.
[in]addThe node to add.

References ixmlNodeList_init().

Referenced by ixmlNode_getChildNodes(), ixmlNode_getElementsByTagName(), ixmlNode_getElementsByTagNameNS(), ixmlNode_getElementsByTagNameNSRecursive(), and ixmlNode_getElementsByTagNameRecursive().

◆ ixmlNodeList_init()

void ixmlNodeList_init ( IXML_NodeList nList)

Initializes a nodelist.

Parameters
[in,out]nListThe NodeList to initialize.

Referenced by ixmlNode_getChildNodes(), and ixmlNodeList_addToNodeList().

◆ Parser_freeNodeContent()

void Parser_freeNodeContent ( IXML_Node IXML_Nodeptr)

Fees a node contents.

Parameters
[in]IXML_NodeptrThe Node to process.

Referenced by Parser_parseDocument().

◆ Parser_isValidXmlName()

int Parser_isValidXmlName ( const DOMString  name)

Check to see whether name is a valid xml name.

Parameters
[in]nameThe string to be checked.

References Parser_isNameChar().

◆ Parser_LoadDocument()

int Parser_LoadDocument ( IXML_Document **  retDoc,
const char *  xmlFile,
int  file 
)

Parses a xml file and return the DOM tree.

Parameters
[out]retDocThe output document tree.
[in]xmlFileThe file name or the buffer to copy, according to the parameter "file".
[in]file1 if you want to read from a file, 0 if xmlFileName is the buffer to copy to the parser.

References _Parser::curPtr, _Parser::dataBuffer, Parser_free(), Parser_init(), Parser_parseDocument(), and Parser_readFileOrBuffer().

Referenced by ixmlLoadDocumentEx(), and ixmlParseBufferEx().

◆ Parser_setErrorChar()

void Parser_setErrorChar ( char  c)

Sets the error character.

If 'c' is 0 (default), the parser is strict about XML encoding: invalid UTF-8 sequences or "&" entities are rejected, and the parsing aborts.

If 'c' is not 0, the parser is relaxed: invalid UTF-8 characters are replaced by this character, and invalid "&" entities are left untranslated. The parsing is then allowed to continue.

Parameters
[in]cThe character to become the error character.

Referenced by ixmlRelaxParser().

◆ Parser_setNodePrefixAndLocalName()

int Parser_setNodePrefixAndLocalName ( IXML_Node newIXML_NodeIXML_Attr)

Set the node prefix and localName as defined by the nodeName in the form of ns:name.

Parameters
[in,out]newIXML_NodeIXML_AttrThe Node to process.

References safe_strdup().

Referenced by ixmlNode_setNodeName(), Parser_processSTag(), and Parser_xmlNamespace().