Diff for /parser3/src/classes/xdoc.C between versions 1.104 and 1.107

version 1.104, 2002/10/15 15:12:56 version 1.107, 2002/12/18 16:11:26
Line 476  static void _load(Request& r, const Stri Line 476  static void _load(Request& r, const Stri
         // filespec          // filespec
         const String& file_name=params->as_string(0, "uri must be string");          const String& file_name=params->as_string(0, "uri must be string");
         const String& uri=r.absolute(file_name);          const String& uri=r.absolute(file_name);
           
           void *data;  size_t size;
           file_read(pool, uri, data, size, false/*not text*/,
                   params->size()>1?params->as_no_junction(1, "additional params must be hash").get_hash(&method_name)
                           :0);
   
         GdomeDocument *document=(GdomeDocument *)          GdomeDocument *document=(GdomeDocument *)
                 gdome_xml_n_mkref((xmlNode *)xmlParseFile(uri.cstr()));                  gdome_xml_n_mkref((xmlNode *)xmlParseMemory((const char *)data, size));
         if(!document || xmlHaveGenericErrors()) {          if(!document || xmlHaveGenericErrors()) {
                 GdomeException exc=0;                  GdomeException exc=0;
                 throw Exception(                  throw Exception(
                         &uri,                           &uri, 
                         exc);                          exc);
         }          }
           const char *URI_cstr=uri.cstr();
           xmlDoc *doc=gdome_xml_doc_get_xmlDoc(document);
           if(URI_cstr)
                   doc->URL=pool.transcode_buf2xchar(URI_cstr, strlen(URI_cstr));
   
         // replace any previous parsed source          // replace any previous parsed source
         vdoc.set_document(document);          vdoc.set_document(document);
Line 786  static void _transform(Request& r, const Line 795  static void _transform(Request& r, const
         const char **transform_params=0;          const char **transform_params=0;
         if(params->size()>1) {          if(params->size()>1) {
                 Value& vparams=params->as_no_junction(1, "transform parameters must be hash");                  Value& vparams=params->as_no_junction(1, "transform parameters must be hash");
                 if(vparams.is_defined())                  if(!vparams.is_string())
                         if(Hash *params=vparams.get_hash(&method_name)) {                          if(Hash *params=vparams.get_hash(&method_name)) {
                                 const char **current_transform_param=transform_params=                                  const char **current_transform_param=transform_params=
                                         (const char **)pool.malloc(sizeof(const char *)*(params->size()*2+1));                                          (const char **)pool.malloc(sizeof(const char *)*(params->size()*2+1));
Line 884  MXdoc::MXdoc(Pool& apool) : MXnode(apool Line 893  MXdoc::MXdoc(Pool& apool) : MXnode(apool
         add_native_method("set", Method::CT_DYNAMIC, _create, 1, 1);          add_native_method("set", Method::CT_DYNAMIC, _create, 1, 1);
   
         // ^xdoc::load[some.xml]          // ^xdoc::load[some.xml]
         add_native_method("load", Method::CT_DYNAMIC, _load, 1, 1);          add_native_method("load", Method::CT_DYNAMIC, _load, 1, 2);
   
         // ^xdoc.save[some.xml]          // ^xdoc.save[some.xml]
         // ^xdoc.save[some.xml;options hash]          // ^xdoc.save[some.xml;options hash]

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


E-mail: