/* {{{ length int readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D0FB19E Since: */ int dom_namednodemap_length_read(dom_object *obj, zval *retval) { dom_nnodemap_object *objmap; xmlAttrPtr curnode; xmlNodePtr nodep; int count = 0; objmap = (dom_nnodemap_object *)obj->ptr; if (objmap != NULL) { if ((objmap->nodetype == XML_NOTATION_NODE) || objmap->nodetype == XML_ENTITY_NODE) { if (objmap->ht) { count = xmlHashSize(objmap->ht); } } else { nodep = dom_object_get_node(objmap->baseobj); if (nodep) { curnode = nodep->properties; if (curnode) { count++; while (curnode->next != NULL) { count++; curnode = curnode->next; } } } } } ZVAL_LONG(retval, count); return SUCCESS; }
USER_OBJECT_ R_libxmlTypeTable_names(USER_OBJECT_ table, USER_OBJECT_ s_elType) { xmlHashTablePtr t; int n = 0, ctr = 0; int getElements = GET_LENGTH(s_elType) > 0; HashGatherer d = {0, NULL_USER_OBJECT, NULL_USER_OBJECT, NULL}; t = R_getExternalRef(table, NULL); /* R_libxmlTypeTableGetRef(table); */ n = xmlHashSize(t); PROTECT(d.names = NEW_CHARACTER(n)); ctr++; if(getElements) { PROTECT(d.els = NEW_LIST(n)); ctr++; d.elType = (char *) CHAR_DEREF(STRING_ELT(s_elType, 0)); } xmlHashScan(t, getKeys, &d); if(getElements) SET_NAMES(d.els, d.names); else d.els = d.names; UNPROTECT(ctr); return(d.els); }
static xmlSchemaElementPtr lookup_schema_elemDecl(xmlSchemaPtr schema, xmlNodePtr node) { xmlSchemaElementPtr decl = NULL; xmlChar const* nsURI = get_node_nsURI(node); TRACE("(%p, %p)\n", schema, node); if (xmlStrEqual(nsURI, schema->targetNamespace)) decl = xmlHashLookup(schema->elemDecl, node->name); if (!decl && xmlHashSize(schema->schemasImports) > 1) { FIXME("declaration not found in main schema - need to check schema imports!\n"); /*xmlSchemaImportPtr import; if (nsURI == NULL) import = xmlHashLookup(schema->schemasImports, XML_SCHEMAS_NO_NAMESPACE); else import = xmlHashLookup(schema->schemasImports, node->ns->href); if (import != NULL) decl = xmlHashLookup(import->schema->elemDecl, node->name);*/ } return decl; }
SEXP R_xslGetGlobalVariableNames(SEXP r_ctxt) { xmlXPathParserContextPtr ctxt = NULL; xsltTransformContextPtr xslCtxt; int n; SEXP ans; RXMLHashScannerInfo data; ctxt = (xmlXPathParserContextPtr) R_ExternalPtrAddr(r_ctxt); xslCtxt = xsltXPathGetTransformContext(ctxt); if(!xslCtxt || !xslCtxt->globalVars) return(NEW_CHARACTER(0)); n = xmlHashSize(xslCtxt->globalVars); PROTECT(ans = NEW_CHARACTER(n)); data.els = ans; data.i = 0; xmlHashScan(xslCtxt->globalVars, R_getKeyNames, &data); UNPROTECT(1); return(ans); }
static HRESULT WINAPI schema_cache_get_length(IXMLDOMSchemaCollection2* iface, LONG* length) { schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface); TRACE("(%p)->(%p)\n", This, length); if (!length) return E_POINTER; *length = xmlHashSize(This->cache); return S_OK; }
/** * lineNoItemFree: * @item: valid hashtable of break points * * Free @item and all its contents */ void lineNoItemFree(void *item) { xmlHashTablePtr hash = (xmlHashTablePtr) item; if (item) { #if 0 #ifdef WITH_XSLDBG_DEBUG_BREAKPOINTS xsltGenericError(xsltGenericErrorContext, "Freeing breakpoint line hash" " with %d elements \n", xmlHashSize(item)); #endif #endif xmlHashFree(hash, breakPointItemFree); } }
static HRESULT WINAPI schema_cache_get_namespaceURI(IXMLDOMSchemaCollection2* iface, LONG index, BSTR* len) { schema_cache* This = impl_from_IXMLDOMSchemaCollection2(iface); cache_index_data data = {index,len}; TRACE("(%p)->(%i, %p)\n", This, index, len); if (!len) return E_POINTER; *len = NULL; if (index >= xmlHashSize(This->cache)) return E_FAIL; xmlHashScan(This->cache, cache_index, &data); return S_OK; }
/* {{{ length int readonly=yes URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-203510337 Since: */ int dom_nodelist_length_read(dom_object *obj, zval *retval) { dom_nnodemap_object *objmap; xmlNodePtr nodep, curnode; int count = 0; HashTable *nodeht; objmap = (dom_nnodemap_object *)obj->ptr; if (objmap != NULL) { if (objmap->ht) { count = xmlHashSize(objmap->ht); } else { if (objmap->nodetype == DOM_NODESET) { nodeht = HASH_OF(&objmap->baseobj_zv); count = zend_hash_num_elements(nodeht); } else { nodep = dom_object_get_node(objmap->baseobj); if (nodep) { if (objmap->nodetype == XML_ATTRIBUTE_NODE || objmap->nodetype == XML_ELEMENT_NODE) { curnode = nodep->children; if (curnode) { count++; while (curnode->next != NULL) { count++; curnode = curnode->next; } } } else { if (nodep->type == XML_DOCUMENT_NODE || nodep->type == XML_HTML_DOCUMENT_NODE) { nodep = xmlDocGetRootElement((xmlDoc *) nodep); } else { nodep = nodep->children; } curnode = dom_get_elements_by_tag_name_ns_raw( nodep, (char *) objmap->ns, (char *) objmap->local, &count, -1); } } } } } ZVAL_LONG(retval, count); return SUCCESS; }
xmlNode *php_dom_libxml_hash_iter(xmlHashTable *ht, int index) /* {{{ */ { xmlNode *nodep = NULL; nodeIterator *iter; int htsize; if ((htsize = xmlHashSize(ht)) > 0 && index < htsize) { iter = emalloc(sizeof(nodeIterator)); iter->cur = 0; iter->index = index; iter->node = NULL; xmlHashScan(ht, itemHashScanner, iter); nodep = iter->node; efree(iter); return nodep; } else { return NULL; } }
xmlNode *php_dom_libxml_notation_iter(xmlHashTable *ht, int index) /* {{{ */ { notationIterator *iter; xmlNotation *notep = NULL; int htsize; if ((htsize = xmlHashSize(ht)) > 0 && index < htsize) { iter = emalloc(sizeof(notationIterator)); iter->cur = 0; iter->index = index; iter->notation = NULL; xmlHashScan(ht, itemHashScanner, iter); notep = iter->notation; efree(iter); return create_notation(notep->name, notep->PublicID, notep->SystemID); } else { return NULL; } }
/** * This is the main function for 'el' option */ int elMain(int argc, char **argv) { int errorno = 0; char* inp_file = "-"; if (argc <= 1) elUsage(argc, argv, EXIT_BAD_ARGS); elInitOptions(&elOps); if (argc == 2) errorno = parse_xml_file("-"); else { if (!strcmp(argv[2], "--help") || !strcmp(argv[2], "-h") || !strcmp(argv[2], "-?") || !strcmp(argv[2], "-Z")) { elUsage(argc, argv, EXIT_SUCCESS); } else if (!strcmp(argv[2], "-a")) { elOps.show_attr = 1; if (argc >= 4) inp_file = argv[3]; errorno = parse_xml_file(inp_file); } else if (!strcmp(argv[2], "-v")) { elOps.show_attr_and_val = 1; if (argc >= 4) inp_file = argv[3]; errorno = parse_xml_file(inp_file); } else if (!strcmp(argv[2], "-u")) { elOps.sort_uniq = 1; if (argc >= 4) inp_file = argv[3]; uniq = xmlHashCreate(0); errorno = parse_xml_file(inp_file); } else if (!strncmp(argv[2], "-d", 2)) { elOps.check_depth = atoi(argv[2]+2); /* printf("Checking depth (%d)\n", elOps.check_depth); */ elOps.sort_uniq = 1; if (argc >= 4) inp_file = argv[3]; uniq = xmlHashCreate(0); errorno = parse_xml_file(inp_file); } else if (argv[2][0] != '-') { errorno = parse_xml_file(argv[2]); } else elUsage(argc, argv, EXIT_BAD_ARGS); } if (uniq) { int i; ArrayDest lines; lines.array = xmlMalloc(sizeof(xmlChar*) * xmlHashSize(uniq)); lines.offset = 0; xmlHashScan(uniq, hash_key_put, &lines); qsort(lines.array, lines.offset, sizeof(xmlChar*), compare_string_ptr); for (i = 0; i < lines.offset; i++) { printf("%s\n", lines.array[i]); } xmlFree(lines.array); xmlHashFree(uniq, NULL); } return errorno; }