📄 document.c
字号:
errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } attrNode->n.ownerDocument = doc; ErrorHandler: *rtAttr = attrNode; return errCode;}/*================================================================* ixmlDocument_createAttribute* Creates an attribute of the given name. * External function.* Parameters:* name: The name of the Attribute node.* Return Value: * A new attr object with the nodeName attribute set to the* given name, and the localName, prefix and namespaceURI set to NULL.* The value of the attribute is the empty string.*================================================================*/IXML_Attr *ixmlDocument_createAttribute( IN IXML_Document * doc, IN char *name ){ IXML_Attr *attrNode = NULL; ixmlDocument_createAttributeEx( doc, name, &attrNode ); return attrNode;}/*================================================================* ixmlDocument_createAttributeNSEx* Creates an attrbute of the given name and namespace URI* External function.* Parameters:* namespaceURI: the namespace fo the attribute to create* qualifiedName: qualifiedName of the attribute to instantiate* Return Value:* IXML_SUCCESS* IXML_INVALID_PARAMETER: if either doc,namespaceURI or qualifiedName is NULL* IXML_INSUFFICIENT_MEMORY: if not enough memory to finish this operations.**=================================================================*/intixmlDocument_createAttributeNSEx( IN IXML_Document * doc, IN DOMString namespaceURI, IN DOMString qualifiedName, OUT IXML_Attr ** rtAttr ){ IXML_Attr *attrNode = NULL; int errCode = IXML_SUCCESS; if( ( doc == NULL ) || ( namespaceURI == NULL ) || ( qualifiedName == NULL ) ) { errCode = IXML_INVALID_PARAMETER; goto ErrorHandler; } errCode = ixmlDocument_createAttributeEx( doc, qualifiedName, &attrNode ); if( errCode != IXML_SUCCESS ) { goto ErrorHandler; } // set the namespaceURI field attrNode->n.namespaceURI = strdup( namespaceURI ); if( attrNode->n.namespaceURI == NULL ) { ixmlAttr_free( attrNode ); attrNode = NULL; errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } // set the localName and prefix errCode = ixmlNode_setNodeName( ( IXML_Node * ) attrNode, qualifiedName ); if( errCode != IXML_SUCCESS ) { ixmlAttr_free( attrNode ); attrNode = NULL; goto ErrorHandler; } ErrorHandler: *rtAttr = attrNode; return errCode;}/*================================================================* ixmlDocument_createAttributeNS* Creates an attrbute of the given name and namespace URI* External function.* Parameters:* namespaceURI: the namespace fo the attribute to create* qualifiedName: qualifiedName of the attribute to instantiate* Return Value: * Creates an attribute node with the given namespaceURI and* qualifiedName. The prefix and localname are extracted from * the qualifiedName. The node value is empty.* *=================================================================*/IXML_Attr *ixmlDocument_createAttributeNS( IN IXML_Document * doc, IN DOMString namespaceURI, IN DOMString qualifiedName ){ IXML_Attr *attrNode = NULL; ixmlDocument_createAttributeNSEx( doc, namespaceURI, qualifiedName, &attrNode ); return attrNode;}/*================================================================* ixmlDocument_createCDATASectionEx* Creates an CDATASection node whose value is the specified string* External function.* Parameters:* data: the data for the CDATASection contents.* Return Value:* IXML_SUCCESS* IXML_INVALID_PARAMETER: if either doc or data is NULL* IXML_INSUFFICIENT_MEMORY: if not enough memory to finish this operations.**=================================================================*/intixmlDocument_createCDATASectionEx( IN IXML_Document * doc, IN DOMString data, OUT IXML_CDATASection ** rtCD ){ int errCode = IXML_SUCCESS; IXML_CDATASection *cDSectionNode = NULL; if( ( doc == NULL ) || ( data == NULL ) ) { errCode = IXML_INVALID_PARAMETER; goto ErrorHandler; } cDSectionNode = ( IXML_CDATASection * ) malloc( sizeof( IXML_CDATASection ) ); if( cDSectionNode == NULL ) { errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } ixmlCDATASection_init( cDSectionNode ); cDSectionNode->n.nodeType = eCDATA_SECTION_NODE; cDSectionNode->n.nodeName = strdup( CDATANODENAME ); if( cDSectionNode->n.nodeName == NULL ) { ixmlCDATASection_free( cDSectionNode ); cDSectionNode = NULL; errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } cDSectionNode->n.nodeValue = strdup( data ); if( cDSectionNode->n.nodeValue == NULL ) { ixmlCDATASection_free( cDSectionNode ); cDSectionNode = NULL; errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } cDSectionNode->n.ownerDocument = doc; ErrorHandler: *rtCD = cDSectionNode; return errCode;}/*================================================================* ixmlDocument_createCDATASection* Creates an CDATASection node whose value is the specified string* External function.* Parameters:* data: the data for the CDATASection contents.* Return Value: * The new CDATASection object.* *=================================================================*/IXML_CDATASection *ixmlDocument_createCDATASection( IN IXML_Document * doc, IN DOMString data ){ IXML_CDATASection *cDSectionNode = NULL; ixmlDocument_createCDATASectionEx( doc, data, &cDSectionNode ); return cDSectionNode;}/*================================================================* ixmlDocument_createElementNSEx* Creates an element of the given qualified name and namespace URI.* External function.* Parameters:* namespaceURI: the namespace URI of the element to create.* qualifiedName: the qualified name of the element to instantiate.* Return Value: * Return Value:* IXML_SUCCESS* IXML_INVALID_PARAMETER: if either doc,namespaceURI or qualifiedName is NULL* IXML_INSUFFICIENT_MEMORY: if not enough memory to finish this operations.**=================================================================*/intixmlDocument_createElementNSEx( IN IXML_Document * doc, IN DOMString namespaceURI, IN DOMString qualifiedName, OUT IXML_Element ** rtElement ){ IXML_Element *newElement = NULL; int errCode = IXML_SUCCESS; if( ( doc == NULL ) || ( namespaceURI == NULL ) || ( qualifiedName == NULL ) ) { errCode = IXML_INVALID_PARAMETER; goto ErrorHandler; } errCode = ixmlDocument_createElementEx( doc, qualifiedName, &newElement ); if( errCode != IXML_SUCCESS ) { goto ErrorHandler; } // set the namespaceURI field newElement->n.namespaceURI = strdup( namespaceURI ); if( newElement->n.namespaceURI == NULL ) { ixmlElement_free( newElement ); newElement = NULL; errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } // set the localName and prefix errCode = ixmlNode_setNodeName( ( IXML_Node * ) newElement, qualifiedName ); if( errCode != IXML_SUCCESS ) { ixmlElement_free( newElement ); newElement = NULL; errCode = IXML_INSUFFICIENT_MEMORY; goto ErrorHandler; } newElement->n.nodeValue = NULL; ErrorHandler: *rtElement = newElement; return errCode;}/*================================================================* ixmlDocument_createElementNS* Creates an element of the given qualified name and namespace URI.* External function.* Parameters:* namespaceURI: the namespace URI of the element to create.* qualifiedName: the qualified name of the element to instantiate.* Return Value: * The new element object with tagName qualifiedName, prefix and* localName extraced from qualfiedName, nodeName of qualfiedName,* namespaceURI of namespaceURI.**=================================================================*/IXML_Element *ixmlDocument_createElementNS( IN IXML_Document * doc, IN DOMString namespaceURI, IN DOMString qualifiedName ){ IXML_Element *newElement = NULL; ixmlDocument_createElementNSEx( doc, namespaceURI, qualifiedName, &newElement ); return newElement;}/*================================================================* ixmlDocument_getElementsByTagName* Returns a nodeList of all the Elements with a given tag name* in the order in which they are encountered in a preorder traversal* of the document tree.* External function.* Parameters:* tagName: the name of the tag to match on. The special value "*"* matches all tags.* Return Value:* A new nodeList object containing all the matched Elements. **=================================================================*/IXML_NodeList *ixmlDocument_getElementsByTagName( IN IXML_Document * doc, IN char *tagName ){ IXML_NodeList *returnNodeList = NULL; if( ( doc == NULL ) || ( tagName == NULL ) ) { return NULL; } ixmlNode_getElementsByTagName( ( IXML_Node * ) doc, tagName, &returnNodeList ); return returnNodeList;}/*================================================================* ixmlDocument_getElementsByTagNameNS* Returns a nodeList of all the Elements with a given local name and* namespace URI in the order in which they are encountered in a * preorder traversal of the document tree.* External function.* Parameters:* namespaceURI: the namespace of the elements to match on. The special* value "*" matches all namespaces.* localName: the local name of the elements to match on. The special* value "*" matches all local names.* Return Value:* A new nodeList object containing all the matched Elements. **=================================================================*/IXML_NodeList *ixmlDocument_getElementsByTagNameNS( IN IXML_Document * doc, IN DOMString namespaceURI, IN DOMString localName ){ IXML_NodeList *returnNodeList = NULL; if( ( doc == NULL ) || ( namespaceURI == NULL ) || ( localName == NULL ) ) { return NULL; } ixmlNode_getElementsByTagNameNS( ( IXML_Node * ) doc, namespaceURI, localName, &returnNodeList ); return returnNodeList;}/*================================================================* ixmlDocument_getElementById* Returns the element whose ID is given by tagName. If no such* element exists, returns null. * External function.* Parameter:* tagName: the tag name for an element.* Return Values:* The matching element.**=================================================================*/IXML_Element *ixmlDocument_getElementById( IN IXML_Document * doc, IN DOMString tagName ){ IXML_Element *rtElement = NULL; IXML_Node *nodeptr = ( IXML_Node * ) doc; const char *name; if( ( nodeptr == NULL ) || ( tagName == NULL ) ) { return rtElement; } if( ixmlNode_getNodeType( nodeptr ) == eELEMENT_NODE ) { name = ixmlNode_getNodeName( nodeptr ); if( name == NULL ) { return rtElement; } if( strcmp( tagName, name ) == 0 ) { rtElement = ( IXML_Element * ) nodeptr; return rtElement; } else { rtElement = ixmlDocument_getElementById( ( IXML_Document * ) ixmlNode_getFirstChild ( nodeptr ), tagName ); if( rtElement == NULL ) { rtElement = ixmlDocument_getElementById( ( IXML_Document * ) ixmlNode_getNextSibling ( nodeptr ), tagName ); } } } else { rtElement = ixmlDocument_getElementById( ( IXML_Document * ) ixmlNode_getFirstChild ( nodeptr ), tagName ); if( rtElement == NULL ) { rtElement = ixmlDocument_getElementById( ( IXML_Document * ) ixmlNode_getNextSibling ( nodeptr ), tagName ); } } return rtElement;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -