Diff for /parser3/src/classes/xnode.C between versions 1.95 and 1.104

version 1.95, 2016/11/01 23:10:41 version 1.104, 2026/09/20 00:27:40
Line 1 Line 1
 /** @file  /** @file
         Parser: @b dom parser class.          Parser: @b dom parser class.
   
         Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)          Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com)
         Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)          Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru>
 */  */
 #include "classes.h"  #include "classes.h"
 #ifdef XML  #ifdef XML
Line 95  private: Line 95  private:
   
 xmlNode& as_node(MethodParams& params, int index, const char* msg) {  xmlNode& as_node(MethodParams& params, int index, const char* msg) {
         Value& value=params.as_no_junction(index, msg);          Value& value=params.as_no_junction(index, msg);
         if(Value* vxnode=value.as(VXNODE_TYPE))          if(VXnode* vxnode=dynamic_cast<VXnode*>(&value))
                 return static_cast<VXnode*>(vxnode)->get_xmlnode();                  return vxnode->get_xmlnode();
         else          else
                 throw Exception(PARSER_RUNTIME,                  throw Exception(PARSER_RUNTIME, 0, msg);
                         0,  
                         msg);  
 }  }
   
 xmlChar* as_xmlchar(Request& r, MethodParams& params, int index, const char* msg) {  xmlChar* as_xmlchar(Request& r, MethodParams& params, int index, const char* msg) {
Line 232  struct AccumulateFoundInfo Line 230  struct AccumulateFoundInfo
 #endif  #endif
 static void AccumulateFound(xmlNode& node, AccumulateFoundInfo* info)  static void AccumulateFound(xmlNode& node, AccumulateFoundInfo* info)
 {  {
         info->hash->put(          info->hash->put(String::Body::uitoa(info->index++), &info->vdoc->wrap(node));
                 String::Body::Format(info->index++),   
                 &info->vdoc->wrap(node));  
 }  }
 template<typename I> static void  template<typename I> static void
 pa_xmlNamedPreorderTraversal (  pa_xmlNamedPreorderTraversal (
Line 725  static void selectNodesHandler(Request&, Line 721  static void selectNodesHandler(Request&,
                         if(int size=res->nodesetval->nodeNr) {                          if(int size=res->nodesetval->nodeNr) {
                                 HashStringValue& hash=vhash.hash();                                  HashStringValue& hash=vhash.hash();
                                 for(int i=0; i<size; i++)                                  for(int i=0; i<size; i++)
                                         hash.put(                                          hash.put(String::Body::uitoa(i), &xdoc.wrap(*res->nodesetval->nodeTab[i]));
                                                 String::Body::Format(i),   
                                                 &xdoc.wrap(*res->nodesetval->nodeTab[i]));  
                         }                          }
                 break;                  break;
         default:           default: 
Line 937  MXnode::MXnode(const char* aname): Metho Line 931  MXnode::MXnode(const char* aname): Metho
   
         // consts          // consts
   
 #define CONST(name) consts.put(#name, new VInt(XML_##name))  #define PA_CONST(name) consts.put(#name, new VInt(XML_##name))
 #define CONST2(name, value) consts.put(#name, new VInt(value))  #define PA_CONST2(name, value) consts.put(#name, new VInt(value))
   
         CONST(ELEMENT_NODE);          PA_CONST(ELEMENT_NODE);
         CONST(ATTRIBUTE_NODE);          PA_CONST(ATTRIBUTE_NODE);
         CONST(TEXT_NODE);          PA_CONST(TEXT_NODE);
         CONST(CDATA_SECTION_NODE);          PA_CONST(CDATA_SECTION_NODE);
         CONST2(ENTITY_REFERENCE_NODE, XML_ENTITY_REF_NODE);          PA_CONST2(ENTITY_REFERENCE_NODE, XML_ENTITY_REF_NODE);
         CONST(ENTITY_NODE);          PA_CONST(ENTITY_NODE);
         CONST2(PROCESSING_INSTRUCTION_NODE, XML_PI_NODE);          PA_CONST2(PROCESSING_INSTRUCTION_NODE, XML_PI_NODE);
         CONST(COMMENT_NODE);          PA_CONST(COMMENT_NODE);
         CONST(DOCUMENT_NODE);          PA_CONST(DOCUMENT_NODE);
         CONST(DOCUMENT_TYPE_NODE);          PA_CONST(DOCUMENT_TYPE_NODE);
         CONST2(DOCUMENT_FRAGMENT_NODE, XML_DOCUMENT_FRAG_NODE);          PA_CONST2(DOCUMENT_FRAGMENT_NODE, XML_DOCUMENT_FRAG_NODE);
         CONST(NOTATION_NODE);          PA_CONST(NOTATION_NODE);
 }  }
   
 #endif  #endif

Removed from v.1.95  
changed lines
  Added in v.1.104


E-mail: