--- parser3/src/classes/xnode.C 2020/12/15 17:10:29 1.97 +++ parser3/src/classes/xnode.C 2026/04/25 13:38:46 1.103 @@ -1,8 +1,8 @@ /** @file Parser: @b dom parser class. - Copyright (c) 2001-2020 Art. Lebedev Studio (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) + Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian */ #include "classes.h" #ifdef XML @@ -21,7 +21,7 @@ #include "libxml/xpath.h" #include "libxml/xpathInternals.h" -volatile const char * IDENT_XNODE_C="$Id: xnode.C,v 1.97 2020/12/15 17:10:29 moko Exp $" IDENT_XNODE_H; +volatile const char * IDENT_XNODE_C="$Id: xnode.C,v 1.103 2026/04/25 13:38:46 moko Exp $" IDENT_XNODE_H; // classes @@ -95,12 +95,10 @@ private: xmlNode& as_node(MethodParams& params, int index, const char* msg) { Value& value=params.as_no_junction(index, msg); - if(Value* vxnode=value.as(VXNODE_TYPE)) - return static_cast(vxnode)->get_xmlnode(); + if(VXnode* vxnode=dynamic_cast(&value)) + return vxnode->get_xmlnode(); else - throw Exception(PARSER_RUNTIME, - 0, - msg); + throw Exception(PARSER_RUNTIME, 0, msg); } xmlChar* as_xmlchar(Request& r, MethodParams& params, int index, const char* msg) { @@ -232,9 +230,7 @@ struct AccumulateFoundInfo #endif static void AccumulateFound(xmlNode& node, AccumulateFoundInfo* info) { - info->hash->put( - String::Body::Format(info->index++), - &info->vdoc->wrap(node)); + info->hash->put(String::Body::uitoa(info->index++), &info->vdoc->wrap(node)); } template static void pa_xmlNamedPreorderTraversal ( @@ -725,9 +721,7 @@ static void selectNodesHandler(Request&, if(int size=res->nodesetval->nodeNr) { HashStringValue& hash=vhash.hash(); for(int i=0; inodesetval->nodeTab[i])); + hash.put(String::Body::uitoa(i), &xdoc.wrap(*res->nodesetval->nodeTab[i])); } break; default: