|
|
| version 1.78, 2007/08/20 08:56:46 | version 1.80, 2007/10/10 17:37:18 |
|---|---|
| Line 330 static void _hasChildNodes(Request& r, M | Line 330 static void _hasChildNodes(Request& r, M |
| xmlNode& node=vnode.get_xmlnode(); | xmlNode& node=vnode.get_xmlnode(); |
| // write out result | // write out result |
| bool result=node.children!=0; | r.write_no_lang(*new VBool(node.children!=0)); |
| r.write_no_lang(*new VBool(result)); | |
| } | } |
| // Node cloneNode(in boolean deep); | // Node cloneNode(in boolean deep); |
| Line 365 xmlNode& get_self_element(VXnode& vnode) | Line 364 xmlNode& get_self_element(VXnode& vnode) |
| static void _getAttribute(Request& r, MethodParams& params) { | static void _getAttribute(Request& r, MethodParams& params) { |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* name=as_xmlchar(r, params, 0, "name must be string"); | const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); |
| // todo: when name="xmlns" | // todo: when name="xmlns" |
| xmlChar* attribute_value=xmlGetProp(&element, name); | xmlChar* attribute_value=xmlGetProp(&element, name); |
| Line 377 static void _getAttribute(Request& r, Me | Line 376 static void _getAttribute(Request& r, Me |
| static void _setAttribute(Request& r, MethodParams& params) { | static void _setAttribute(Request& r, MethodParams& params) { |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* name=as_xmlchar(r, params, 0, "name must be string"); | const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); |
| const xmlChar* attribute_value=as_xmlchar(r, params, 1, "value must be string"); | const xmlChar* attribute_value=as_xmlchar(r, params, 1, VALUE_MUST_BE_STRING); |
| // todo: when name="xmlns" | // todo: when name="xmlns" |
| if(!xmlSetProp(&element, name, attribute_value)) | if(!xmlSetProp(&element, name, attribute_value)) |
| Line 389 static void _setAttribute(Request& r, Me | Line 388 static void _setAttribute(Request& r, Me |
| static void _removeAttribute(Request& r, MethodParams& params) { | static void _removeAttribute(Request& r, MethodParams& params) { |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* name=as_xmlchar(r, params, 0, "name must be string"); | const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); |
| // todo: when name="xmlns" | // todo: when name="xmlns" |
| xmlUnsetProp(&element, name); | xmlUnsetProp(&element, name); |
| Line 400 static void _getAttributeNode(Request& r | Line 399 static void _getAttributeNode(Request& r |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| VXdoc& vxdoc=vnode.get_vxdoc(); | VXdoc& vxdoc=vnode.get_vxdoc(); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* localName=as_xmlchar(r, params, 0, "name must be string"); | const xmlChar* localName=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); |
| if(xmlNode* retNode=pa_getAttributeNodeNS(element, localName, 0)){ | if(xmlNode* retNode=pa_getAttributeNodeNS(element, localName, 0)){ |
| // write out result | // write out result |
| Line 460 static void _getElementsByTagName(Reques | Line 459 static void _getElementsByTagName(Reques |
| VXdoc& vxdoc=vnode.get_vxdoc(); | VXdoc& vxdoc=vnode.get_vxdoc(); |
| xmlNode& xmlnode=vnode.get_xmlnode(); | xmlNode& xmlnode=vnode.get_xmlnode(); |
| xmlChar* tagName=as_xmlchar(r, params, 0, "name must be string"); | xmlChar* tagName=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); |
| VHash& result=*new VHash; | VHash& result=*new VHash; |
| AccumulateFoundInfo info={&result.hash(), &vxdoc, 0}; | AccumulateFoundInfo info={&result.hash(), &vxdoc, 0}; |
| Line 481 static void _getAttributeNS(Request& r, | Line 480 static void _getAttributeNS(Request& r, |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| xmlChar* namespaceURI=as_xmlchar(r, params, 0, "namespaceURI must be string"); | xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); |
| xmlChar* localName=as_xmlchar(r, params, 1, "localName must be string"); | xmlChar* localName=as_xmlchar(r, params, 1, LOCALNAME_MUST_BE_STRING); |
| // todo: when name="xmlns" | // todo: when name="xmlns" |
| xmlChar* attribute_value=xmlGetNsProp(&element, localName, namespaceURI); | xmlChar* attribute_value=xmlGetNsProp(&element, localName, namespaceURI); |
| Line 497 static void _setAttributeNS(Request& r, | Line 496 static void _setAttributeNS(Request& r, |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| VXdoc& vxdoc=vnode.get_vxdoc(); | VXdoc& vxdoc=vnode.get_vxdoc(); |
| xmlDoc& xmldoc=vxdoc.get_xmldoc(); | xmlDoc& xmldoc=vxdoc.get_xmldoc(); |
| const xmlChar* namespaceURI=as_xmlchar(r, params, 0, "namespaceURI must be string"); | const xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); |
| const xmlChar* qualifiedName=as_xmlchar(r, params, 1, "qualifiedName must be string"); | const xmlChar* qualifiedName=as_xmlchar(r, params, 1, "qualifiedName must be string"); |
| const xmlChar* attribute_value=as_xmlchar(r, params, 2, "value must be string"); | const xmlChar* attribute_value=as_xmlchar(r, params, 2, VALUE_MUST_BE_STRING); |
| xmlChar* prefix=0; | xmlChar* prefix=0; |
| xmlChar* localName=xmlSplitQName2(qualifiedName, &prefix); | xmlChar* localName=xmlSplitQName2(qualifiedName, &prefix); |
| Line 528 static void _removeAttributeNS(Request& | Line 527 static void _removeAttributeNS(Request& |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| VXdoc& vxdoc=vnode.get_vxdoc(); | VXdoc& vxdoc=vnode.get_vxdoc(); |
| xmlDoc& xmldoc=vxdoc.get_xmldoc(); | xmlDoc& xmldoc=vxdoc.get_xmldoc(); |
| const xmlChar* namespaceURI=as_xmlchar(r, params, 0, "namespaceURI must be string"); | const xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); |
| const xmlChar* localName=as_xmlchar(r, params, 1, "localName must be string"); | const xmlChar* localName=as_xmlchar(r, params, 1, LOCALNAME_MUST_BE_STRING); |
| // todo: when name="xmlns" | // todo: when name="xmlns" |
| xmlNs& ns=pa_xmlMapNs(xmldoc, namespaceURI, 0); | xmlNs& ns=pa_xmlMapNs(xmldoc, namespaceURI, 0); |
| Line 541 static void _getAttributeNodeNS(Request& | Line 540 static void _getAttributeNodeNS(Request& |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| VXdoc& vxdoc=vnode.get_vxdoc(); | VXdoc& vxdoc=vnode.get_vxdoc(); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* namespaceURI=as_xmlchar(r, params, 0, "namespaceURI must be string"); | const xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); |
| const xmlChar* localName=as_xmlchar(r, params, 1, "localName must be string"); | const xmlChar* localName=as_xmlchar(r, params, 1, LOCALNAME_MUST_BE_STRING); |
| if(xmlNode* retNode=pa_getAttributeNodeNS(element, localName, namespaceURI)){ | if(xmlNode* retNode=pa_getAttributeNodeNS(element, localName, namespaceURI)){ |
| // write out result | // write out result |
| Line 555 static void _hasAttribute(Request& r, Me | Line 554 static void _hasAttribute(Request& r, Me |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* name=as_xmlchar(r, params, 0, "name must be string"); | const xmlChar* name=as_xmlchar(r, params, 0, NAME_MUST_BE_STRING); |
| xmlChar* prop=xmlGetProp(&element, name); | |
| // todo: when name="xmlns" | // todo: when name="xmlns" |
| // write out result | // write out result |
| r.write_no_lang(*new VBool(prop!=0)); | r.write_no_lang(*new VBool(xmlGetProp(&element, name)!=0)); |
| } | } |
| // boolean hasAttributeNS(n DOMString namespaceURI, in DOMString localName) raises(DOMException); | // boolean hasAttributeNS(n DOMString namespaceURI, in DOMString localName) raises(DOMException); |
| Line 568 static void _hasAttributeNS(Request& r, | Line 566 static void _hasAttributeNS(Request& r, |
| VXnode& vnode=GET_SELF(r, VXnode); | VXnode& vnode=GET_SELF(r, VXnode); |
| xmlNode& element=get_self_element(vnode); | xmlNode& element=get_self_element(vnode); |
| const xmlChar* namespaceURI=as_xmlchar(r, params, 0, "namespaceURI must be string"); | const xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); |
| const xmlChar* localName=as_xmlchar(r, params, 1, "localName must be string"); | const xmlChar* localName=as_xmlchar(r, params, 1, LOCALNAME_MUST_BE_STRING); |
| xmlChar* prop=xmlGetNsProp(&element, localName, namespaceURI); | |
| // write out result | // write out result |
| r.write_no_lang(*new VBool(prop!=0)); | r.write_no_lang(*new VBool(xmlGetNsProp(&element, localName, namespaceURI)!=0)); |
| } | } |
| // boolean hasAttributes | // boolean hasAttributes |
| Line 591 static void _getElementsByTagNameNS(Requ | Line 588 static void _getElementsByTagNameNS(Requ |
| xmlDoc& xmldoc=vdoc.get_xmldoc(); | xmlDoc& xmldoc=vdoc.get_xmldoc(); |
| // namespaceURI;localName | // namespaceURI;localName |
| xmlChar* namespaceURI=as_xmlchar(r, params, 0, "namespaceURI must be string"); | xmlChar* namespaceURI=as_xmlchar(r, params, 0, NAMESPACEURI_MUST_BE_STRING); |
| xmlChar* localName=as_xmlchar(r, params, 1, "name must be string"); | xmlChar* localName=as_xmlchar(r, params, 1, NAME_MUST_BE_STRING); |
| VHash& result=*new VHash; | VHash& result=*new VHash; |
| AccumulateFoundInfo info={&result.hash(), &vdoc, 0}; | AccumulateFoundInfo info={&result.hash(), &vdoc, 0}; |
| Line 708 static void selectNodeHandler(Request& r | Line 705 static void selectNodeHandler(Request& r |
| case XPATH_UNDEFINED: | case XPATH_UNDEFINED: |
| break; | break; |
| case XPATH_NODESET: | case XPATH_NODESET: |
| if(res->nodesetval && res->nodesetval->nodeNr) { // empty result strangly has NODESET res->type | if(res->nodesetval && res->nodesetval->nodeNr) { // empty result strangely has NODESET res->type |
| if(res->nodesetval->nodeNr>1) | if(res->nodesetval->nodeNr>1) |
| throw Exception(PARSER_RUNTIME, | throw Exception(PARSER_RUNTIME, |
| &expression, | &expression, |