这篇教程C++ xmlTextReaderDepth函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xmlTextReaderDepth函数的典型用法代码示例。如果您正苦于以下问题:C++ xmlTextReaderDepth函数的具体用法?C++ xmlTextReaderDepth怎么用?C++ xmlTextReaderDepth使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xmlTextReaderDepth函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: cxHashRootReadArraycxTypes cxHashRootReadArray(cxHashRoot root,xmlTextReaderPtr reader){ cxTypes types = cxArrayTypesCreate(); int depth = xmlTextReaderDepth(reader); while(xmlTextReaderRead(reader) && depth != xmlTextReaderDepth(reader)){ if(xmlTextReaderNodeType(reader) != XML_READER_TYPE_ELEMENT){ continue; } cxAny value = NULL; cxConstChars temp = cxXMLReadElementName(reader); if(ELEMENT_IS_TYPE(cxString)){ cxTypes types = cxHashRootReadString(root, reader); value = types != NULL ? types->any : NULL; } else if(ELEMENT_IS_TYPE(cxHash)){ cxTypes types = cxHashRootReadHash(root, reader); value = types != NULL ? types->any : NULL; } else if(ELEMENT_IS_TYPE(cxArray)){ cxTypes types = cxHashRootReadArray(root, reader); value = types != NULL ? types->any : NULL; } else { value = cxReadValues(root, temp, reader); } if(value != NULL){ cxArrayAppend(types->any, value); } } return types;}
开发者ID:iloveican,项目名称:cxEngine,代码行数:28,
示例2: calloc/** * Reads a SubnetConfigs from XML. The reader is assumed to be at the start element. * * @return the SubnetConfigs, or NULL in case of error. */static struct full_ns0_subnetConfigs *xmlTextReaderReadNs0SubnetConfigsType(xmlTextReaderPtr reader) { int status, depth; void *_child_accessor; struct full_ns0_subnetConfigs *_subnetConfigs = calloc(1, sizeof(struct full_ns0_subnetConfigs)); if (xmlTextReaderIsEmptyElement(reader) == 0) { depth = xmlTextReaderDepth(reader);//track the depth. status = xmlTextReaderAdvanceToNextStartOrEndElement(reader); while (xmlTextReaderDepth(reader) > depth) { if (status < 1) { //panic: XML read error.#if DEBUG_ENUNCIATE printf("Failure to advance to next child element./n");#endif freeNs0SubnetConfigsType(_subnetConfigs); free(_subnetConfigs); return NULL; } else if (xmlTextReaderNodeType(reader) == XML_READER_TYPE_ELEMENT && xmlStrcmp(BAD_CAST "subnetConfig", xmlTextReaderConstLocalName(reader)) == 0 && xmlTextReaderConstNamespaceUri(reader) == NULL) {#if DEBUG_ENUNCIATE > 1 printf("Attempting to read choice {}subnetConfig of type {}subnetConfig./n");#endif _child_accessor = xmlTextReaderReadNs0SubnetConfigType(reader); if (_child_accessor == NULL) {#if DEBUG_ENUNCIATE printf("Failed to read choice {}subnetConfig of type {}subnetConfig./n");#endif //panic: unable to read the child element for some reason. freeNs0SubnetConfigsType(_subnetConfigs); free(_subnetConfigs); return NULL; } _subnetConfigs->subnetConfig = realloc(_subnetConfigs->subnetConfig, (_subnetConfigs->_sizeof_subnetConfig + 1) * sizeof(struct full_ns0_subnetConfig)); memcpy(&(_subnetConfigs->subnetConfig[_subnetConfigs->_sizeof_subnetConfig++]), _child_accessor, sizeof(struct full_ns0_subnetConfig)); free(_child_accessor); status = xmlTextReaderAdvanceToNextStartOrEndElement(reader); } else {#if DEBUG_ENUNCIATE > 1 if (xmlTextReaderConstNamespaceUri(reader) == NULL) { printf("unknown child element {}%s for type {}subnetConfigs. Skipping.../n", xmlTextReaderConstLocalName(reader)); } else { printf("unknown child element {%s}%s for type {}subnetConfigs. Skipping.../n", xmlTextReaderConstNamespaceUri(reader), xmlTextReaderConstLocalName(reader)); }#endif status = xmlTextReaderSkipElement(reader); } } } return _subnetConfigs;}
开发者ID:saurabh29july,项目名称:OpenDaylightNBIDocumentation,代码行数:65,
示例3: parse_propertiesstatic int parse_properties(xmlTextReaderPtr reader, tmx_property **prop_headadr) { tmx_property *res; int curr_depth; const char *name; curr_depth = xmlTextReaderDepth(reader); /* Parse each child */ do { if (xmlTextReaderRead(reader) != 1) return 0; /* error_handler has been called */ if (xmlTextReaderNodeType(reader) == XML_READER_TYPE_ELEMENT) { name = (char*)xmlTextReaderConstName(reader); if (!strcmp(name, "property")) { if (!(res = alloc_prop())) return 0; res->next = *prop_headadr; *prop_headadr = res; if (!parse_property(reader, res)) return 0; } else { /* Unknow element, skip its tree */ if (xmlTextReaderNext(reader) != 1) return 0; } } } while (xmlTextReaderNodeType(reader) != XML_READER_TYPE_END_ELEMENT || xmlTextReaderDepth(reader) != curr_depth); return 1;}
开发者ID:V0idExp,项目名称:tmx,代码行数:28,
示例4: getTitle/** * Gets the title from the parser. Returns true if success, false if EOF */bool getTitle (xmlTextReaderPtr xmlReader, int *moreWiki, GString* articleTitle) { // loops until it finds the title tag or EOF // one tree at a time, skips sub trees while (1 == *moreWiki) { // loops until xmlReader is back down to level 2 // one node at a time while (1 == *moreWiki && 2 > xmlTextReaderDepth (xmlReader)) { *moreWiki = xmlTextReaderRead (xmlReader); } // loops until it finds the title tag, end of subtree or EOF // one tree at a time, skips sub trees while (1 == *moreWiki && 2 <= xmlTextReaderDepth (xmlReader)) { if (xmlStrEqual(xmlTextReaderConstName(xmlReader), (const unsigned char *) "title")) { *moreWiki = xmlTextReaderRead(xmlReader); articleTitle = g_string_assign(articleTitle, (gchar *) xmlTextReaderConstValue(xmlReader)); return (1 == *moreWiki); } *moreWiki = xmlTextReaderNext(xmlReader); } } // this should only happen at the end of the document return (1 == *moreWiki);}
开发者ID:ahabeger,项目名称:indexWiki,代码行数:29,
示例5: oscap_parser_text_value/* -1 error; 0 OK */int oscap_parser_text_value(xmlTextReaderPtr reader, oscap_xml_value_consumer consumer, void *user){ int depth = xmlTextReaderDepth(reader); bool has_value = false; int ret = 0; if (xmlTextReaderIsEmptyElement(reader)) { return ret; } xmlTextReaderRead(reader); while (xmlTextReaderDepth(reader) > depth) { int nodetype = xmlTextReaderNodeType(reader); if (nodetype == XML_READER_TYPE_CDATA || nodetype == XML_READER_TYPE_TEXT) { char *value = (char *)xmlTextReaderValue(reader); (*consumer) (value, user); oscap_free(value); has_value = true; } if (xmlTextReaderRead(reader) != 1) { ret = -1; break; } } if (!has_value) (*consumer) ("", user); return ret;}
开发者ID:galaris,项目名称:openscap,代码行数:31,
示例6: myProcessNodeint myProcessNode(xmlTextReaderPtr reader,int *lastdepth, int *readnext ,int *mode,char** savehere,int *i){ const xmlChar *name, *value; name = xmlTextReaderConstName(reader); if (name == NULL) name = BAD_CAST "--"; value = xmlTextReaderConstValue(reader); if(*readnext == 1 && *lastdepth == xmlTextReaderDepth(reader)-1) { if(*i <6) { sprintf(savehere[*i],"%s",value); *i=*i + 1; } else return 1; } else if(0==strncmp(name,"title",5) && *mode>0) { *readnext = 1; *lastdepth = xmlTextReaderDepth(reader); if(*mode==1) *mode=0;//now look for items } else if(0==strncmp(name,"item",4)||0==strncmp(name,"entry",5)) { //find some news feeds *mode=2; } else *readnext = 0; return 0;}
开发者ID:dean36963,项目名称:g15rss,代码行数:35,
示例7: xmlTextReaderDepthExtractionWay XMLParser::_ReadXMLWay() { ExtractionWay way; if ( xmlTextReaderIsEmptyElement( inputReader ) != 1 ) { const int depth = xmlTextReaderDepth( inputReader ); while ( xmlTextReaderRead( inputReader ) == 1 ) { const int childType = xmlTextReaderNodeType( inputReader ); if ( childType != 1 && childType != 15 ) { continue; } const int childDepth = xmlTextReaderDepth( inputReader ); xmlChar* childName = xmlTextReaderName( inputReader ); if ( childName == NULL ) { continue; } if ( depth == childDepth && childType == 15 && xmlStrEqual( childName, ( const xmlChar* ) "way" ) == 1 ) { xmlChar* id = xmlTextReaderGetAttribute( inputReader, ( const xmlChar* ) "id" ); way.id = stringToUint((char*)id); xmlFree(id); xmlFree( childName ); break; } if ( childType != 1 ) { xmlFree( childName ); continue; } if ( xmlStrEqual( childName, ( const xmlChar* ) "tag" ) == 1 ) { xmlChar* k = xmlTextReaderGetAttribute( inputReader, ( const xmlChar* ) "k" ); xmlChar* value = xmlTextReaderGetAttribute( inputReader, ( const xmlChar* ) "v" ); // cout << "->k=" << k << ", v=" << value << endl; if ( k != NULL && value != NULL ) { way.keyVals.Add(std::string( (char *) k ), std::string( (char *) value)); } if ( k != NULL ) { xmlFree( k ); } if ( value != NULL ) { xmlFree( value ); } } else if ( xmlStrEqual( childName, ( const xmlChar* ) "nd" ) == 1 ) { xmlChar* ref = xmlTextReaderGetAttribute( inputReader, ( const xmlChar* ) "ref" ); if ( ref != NULL ) { way.path.push_back( stringToUint(( const char* ) ref ) ); xmlFree( ref ); } } xmlFree( childName ); } } return way;}
开发者ID:DanielTripp,项目名称:Project-OSRM,代码行数:52,
示例8: processNode/** * processNode: * @reader: the xmlReader * * Dump information about the current node */static voidprocessNode(xmlTextReaderPtr reader) { const xmlChar *name, *value; int nodetype; static char spaces[33]=" "; name = xmlTextReaderConstName(reader); if (name == NULL) name = BAD_CAST "--"; value = xmlTextReaderConstValue(reader); nodetype = xmlTextReaderNodeType(reader); if (nodetype!=14 && nodetype!=15) // Skip all text bodies and "/" entities. {#ifdef DETAILS printf("%s%d %d %s %d %d", (spaces + (32-2*xmlTextReaderDepth(reader))), xmlTextReaderDepth(reader), nodetype, name, xmlTextReaderIsEmptyElement(reader), xmlTextReaderHasValue(reader));#else printf("%s%s", (spaces + (32-2*xmlTextReaderDepth(reader))), name);#endif if (value == NULL) printf("/n"); else { if (xmlStrlen(value) > 40) printf(" %.40s.../n", value); else printf(" %s/n", value); } } if (nodetype==1) // Element - possibly has attributes { while (xmlTextReaderMoveToNextAttribute(reader)) printf("%s Attrib: %s=/"%s/"/n", (spaces + (32-2*xmlTextReaderDepth(reader))), xmlTextReaderConstName(reader), xmlTextReaderConstValue(reader)); }}
开发者ID:bobwolff68,项目名称:neuron,代码行数:54,
示例9: xml_reader_get_depthgintxml_reader_get_depth (XmlReader *reader){ g_return_val_if_fail (XML_IS_READER(reader), -1); return xmlTextReaderDepth (reader->xml);}
开发者ID:GNOME,项目名称:gnome-builder,代码行数:7,
示例10: xmlTextReaderRead // Return value: -1 if "state end found", otherwise depth of node int XMLReader::gobbleUntilStartElement(xmlTextReaderPtr &reader, const string &name) { bool state_begin_found = false; bool state_end_found = false; int depth = -1; int r = xmlTextReaderRead(reader); while ( (r==1) && (!state_begin_found) && (!state_end_found) ) { const int type = xmlTextReaderNodeType( reader ); depth = xmlTextReaderDepth(reader); xmlChar *localName = xmlTextReaderLocalName(reader); if (type==1) { state_begin_found = (xmlStrEqual(localName, BAD_CAST name.c_str()) != 0); if (state_begin_found) state_end_found = (xmlTextReaderIsEmptyElement(reader) != 0); } else if (type==15) { state_end_found = (xmlStrEqual(localName, BAD_CAST name.c_str()) != 0); } xmlFree(localName); r=xmlTextReaderRead(reader); } if ( r==0) state_end_found = true; // It makes no sense to have gotten to the beginning with r==0 at the same time return state_begin_found && (!state_end_found) ? depth : -1; }
开发者ID:KjeFre,项目名称:tinia,代码行数:29,
示例11: processNode/** * processNode: * @reader: the xmlReader * * Dump information about the current node */static voidprocessNode(xmlTextReaderPtr reader) { const xmlChar *name, *value; name = xmlTextReaderConstName(reader); if (name == NULL) name = BAD_CAST "--"; value = xmlTextReaderConstValue(reader); printf("Depth: %d; Type: %d; Name: %s; %d|%d", xmlTextReaderDepth(reader), xmlTextReaderNodeType(reader), name, xmlTextReaderIsEmptyElement(reader), xmlTextReaderHasValue(reader)); if (value == NULL) printf("/n"); else { if (xmlStrlen(value) > 40) printf("|-> %.40s.../n", value); else printf(" %s/n", value); }}
开发者ID:GamerSource,项目名称:EpicSource,代码行数:31,
示例12: oscap_to_start_elementbool oscap_to_start_element(xmlTextReaderPtr reader, int depth){ //int olddepth = xmlTextReaderDepth(reader); while (xmlTextReaderDepth(reader) >= depth) { switch (xmlTextReaderNodeType(reader)) { case XML_READER_TYPE_ELEMENT: if (xmlTextReaderDepth(reader) == depth) return true; default: break; } if (xmlTextReaderRead(reader) != 1) break; } return false;}
开发者ID:galaris,项目名称:openscap,代码行数:16,
示例13: cxHashRootReadDBstatic void cxHashRootReadDB(cxDBEnv env,cxHashRoot root,xmlTextReaderPtr reader){ cxReaderAttrInfo *info = cxReaderAttrInfoMake(reader, root, env); int depth = xmlTextReaderDepth(reader); while(xmlTextReaderRead(reader) && depth != xmlTextReaderDepth(reader)){ if(xmlTextReaderNodeType(reader) != XML_READER_TYPE_ELEMENT){ continue; } cxConstChars temp = cxXMLReadElementName(reader); if(!ELEMENT_IS_TYPE(cxDB)){ continue; } cxConstChars file = cxXMLAttr(reader,"file"); cxConstChars table = cxXMLAttr(reader,"table"); cxConstChars type = cxXMLAttr(reader,"type"); cxConstChars sid = cxXMLAttr(reader,"id"); cxConstChars path = cxXMLAttr(reader,"path"); //assert file copy ->to document cxBool copy = cxXMLReadBoolAttr(info, "copy", false); if(copy && file != NULL){ cxCopyFile(file, NULL, NULL); } cxBool rdonly = cxXMLReadBoolAttr(info, "rdonly", false); if(sid == NULL){ CX_WARN("db id not set,will can't add dataset"); } cxString sfile = NULL; if(cxConstCharsEqu(path, "assert")){ sfile = cxAssetsPath(file); //assert must set true rdonly = true; }else if(cxConstCharsEqu(path, "document")){ sfile = cxDocumentPath(file); }else{ CX_ERROR("must set path assert or document"); } cxAny db = NULL; if(file != NULL && table != NULL && type != NULL){ db = cxDBCreate(env, cxStringBody(sfile), table, type, rdonly); } if(db != NULL && sid != NULL){ cxHashSet(root->items, cxHashStrKey(sid), cxDBTypesCreate(db)); }else{ CX_ERROR("open dbenv type %s,db %s:%s failed",cxStringBody(env->type),file,table); } }}
开发者ID:iloveican,项目名称:cxEngine,代码行数:47,
示例14: xmlTextReaderDepthint BEXMLTextReader::depth(){ int depth = xmlTextReaderDepth ( reader ); if ( depth == kBE_XMLReaderError ) { throw BEXMLReaderInterface_Exception ( last_error() ); } return depth;}
开发者ID:SeAlgoAsoma,项目名称:BaseElements-Plugin,代码行数:8,
示例15: parse_tilestatic int parse_tile(xmlTextReaderPtr reader, tmx_tile **tile_headadr, const char *filename) { tmx_tile *res = NULL; int curr_depth; const char *name; char *value; curr_depth = xmlTextReaderDepth(reader); if (!(res = alloc_tile())) return 0; while (*tile_headadr) { tile_headadr = &((*tile_headadr)->next); } *tile_headadr = res; if ((value = (char*)xmlTextReaderGetAttribute(reader, (xmlChar*)"id"))) { /* id */ res->id = atoi(value); tmx_free_func(value); } else { tmx_err(E_MISSEL, "xml parser: missing 'id' attribute in the 'tile' element"); return 0; } do { if (xmlTextReaderRead(reader) != 1) return 0; /* error_handler has been called */ if (xmlTextReaderNodeType(reader) == XML_READER_TYPE_ELEMENT) { name = (char*)xmlTextReaderConstName(reader); if (!strcmp(name, "properties")) { if (!parse_properties(reader, &(res->properties))) return 0; } else if (!strcmp(name, "image")) { if (!parse_image(reader, &(res->image), 0, filename)) return 0; } else { /* Unknow element, skip its tree */ if (xmlTextReaderNext(reader) != 1) return 0; } } } while (xmlTextReaderNodeType(reader) != XML_READER_TYPE_END_ELEMENT || xmlTextReaderDepth(reader) != curr_depth); return 1;}
开发者ID:V0idExp,项目名称:tmx,代码行数:45,
示例16: xmlTextReaderReadxmlNodePtr ProtoXml::IterParser::GetNext(){ //TRACE("enter ProtoXml::IterParser::GetNext() prev_node:%s/n", prev_node ? (const char*)prev_node->name : "(null)"); int result; // If we didn't just return a "prev_node", then read the // very next sequential node w/ xmlTextReaderRead(), else // skip entire "prev_node" sub-tree w/ xmlTextReaderNext() if (NULL == prev_node) result = xmlTextReaderRead(reader_ptr); else result = xmlTextReaderNext(reader_ptr); prev_node = NULL; switch (result) { case 0: return NULL; case -1: PLOG(PL_ERROR, "ProtoXml::IterParser::GetNext() xmlTextReaderRead error!/n"); return NULL; default: break; } do { int nodeType = xmlTextReaderNodeType(reader_ptr); if (XML_READER_TYPE_ELEMENT != nodeType) continue; const char* nodeName = (const char*)xmlTextReaderConstLocalName(reader_ptr); if (NULL == nodeName) { PLOG(PL_ERROR, "ProtoXml::IterParser::GetNext() xmlTextReaderConstLocalName() error/n"); return NULL; } int nodeDepth = xmlTextReaderDepth(reader_ptr); if (nodeDepth < 0) { PLOG(PL_ERROR, "ProtoXml::IterParser::GetNext() xmlTextReaderDepth() error/n"); return NULL; } if (!IterFilterBase::UpdateCurrentPath(nodeDepth, nodeName)) { PLOG(PL_WARN, "ProtoXml::IterParser::GetNext() error: unable to update current path/n"); continue; } if (!IterFilterBase::IsMatch()) continue; // no match, so continue prev_node = xmlTextReaderExpand(reader_ptr); if (NULL == prev_node) PLOG(PL_ERROR, "ProtoXml::IterParser::GetNext() xmlTextReaderExpand() error!/n"); return prev_node; } while ((result = xmlTextReaderRead(reader_ptr)) > 0); if (result < 0) PLOG(PL_ERROR, "ProtoXml::IterParser::GetNext() xmlTextReaderRead() error!/n"); return NULL;} // end ProtoXml::IterParser::GetNext()
开发者ID:Nhuongld,项目名称:nsj,代码行数:57,
示例17: depth/* * call-seq: * depth * * Get the depth of the node */static VALUE depth(VALUE self){ xmlTextReaderPtr reader; Data_Get_Struct(self, xmlTextReader, reader); int depth = xmlTextReaderDepth(reader); if(depth == -1) return Qnil; return INT2NUM(depth);}
开发者ID:halorgium,项目名称:nokogiri,代码行数:15,
示例18: sc_xmltv_check_current_reader_nodebool sc_xmltv_check_current_reader_node(xmlTextReaderPtr reader, int node_type, const char *node_name, int node_depth) { xmlChar *name = NULL; bool result; name = xmlTextReaderName(reader); result = !xmlTextReaderIsEmptyElement(reader) && xmlTextReaderNodeType(reader) == node_type && (!xmlStrcmp(name, (const xmlChar *) node_name)) && xmlTextReaderDepth(reader) == node_depth; xmlFree(name); return result;}
开发者ID:AlwinEsch,项目名称:pvr.stalker,代码行数:11,
示例19: processNode/** * processNode: * @reader: the xmlReader * * Dump information about the current node */static void processNode(xmlTextReaderPtr reader){ int depth, type; type = xmlTextReaderNodeType(reader); if ((type == XML_ELEMENT_DECL) || (type == XML_DTD_NODE)) return; depth = xmlTextReaderDepth(reader); if ((type == XML_ELEMENT_NODE) && (depth == 2)) printf("/n"); if (2 == depth) printf("/t"); else if (3 == depth) printf("/t/t"); xmlNodePtr node = xmlTextReaderCurrentNode(reader); if (xmlTextReaderNodeType(reader) == XML_ELEMENT_NODE && node && node->properties) { xmlAttr *attribute = node->properties; while (attribute && attribute->name && attribute->children) { tag = xmlNodeListGetString(node->doc, attribute->children, 1); printf ("%s%c", tag, (depth == 2) ? '/n' : ':'); bdaddr = strtoba((const char *)tag); if (bdaddr) add_remote_device(bdaddr); attribute = attribute->next; /* tag name is what we need */ break; } } if (xmlTextReaderNodeType(reader) == XML_TEXT_NODE) { if (xmlStrstr((xmlChar *)"Service", tag)) parse_services(reader); else if (xmlStrstr((xmlChar *)"HidDescriptor", tag)) parse_hid_descriptor(reader); else if (xmlStrstr((xmlChar *)"HogpRpt", tag)) parse_hogp(reader); else if (xmlStrstr((xmlChar *)"GattAttrs", tag)) parse_gatt_attribute(reader); else if (xmlStrstr((xmlChar *)"DevClass", tag)) parse_dev_class(reader); else if (xmlStrstr((xmlChar *)"Timestamp", tag)) parse_timestamp(reader); else if (xmlStrstr((xmlChar *)"Address", tag)) parse_bdaddr(reader); else parse_text_node(reader); }}
开发者ID:feedcafe,项目名称:droidparser,代码行数:60,
示例20: stringint cDataMap::processData(xmlTextReaderPtr reader){ // element callback from read_xmlfile // args: pointer to the xmlTextreader xmlNodePtr node ; xmlChar *content; string value; int epgdataid; int retval; // get name, type and depth in the xml structure string name = string((char *)xmlTextReaderConstName(reader)); int type = xmlTextReaderNodeType(reader) ; int depth = xmlTextReaderDepth(reader) ; // get ca0/ca1 or g0/g1 depending which file we read if (type == XML_READER_TYPE_ELEMENT && depth == 2 && (name.compare("ca0") == 0)) { node = xmlTextReaderExpand(reader); content = xmlXPathCastNodeToString(node); node = NULL ; epgdataid = atoi((char *)content); xmlFree(content); retval = xmlTextReaderNext(reader); // jump to end element retval = xmlTextReaderNext(reader); // jump to next start element node = xmlTextReaderExpand(reader); content = xmlXPathCastNodeToString(node); node = NULL ; value = string((char *)content); xmlFree(content); datamap[epgdataid] = value; } else if (type == XML_READER_TYPE_ELEMENT && depth == 2 && ( name.compare("g0") == 0 )) { node = xmlTextReaderExpand(reader); content = xmlXPathCastNodeToString(node); node = NULL ; epgdataid = atoi((char *)content); xmlFree(content); retval = xmlTextReaderNext(reader); // jump to end element retval = xmlTextReaderNext(reader); // jump to next start element node = xmlTextReaderExpand(reader); content = xmlXPathCastNodeToString(node); node = NULL ; value = string((char *)content); xmlFree(content); datamap[epgdataid] = value; } return 0 ;}
开发者ID:yavdr,项目名称:vdr-addon-epgdata2vdr,代码行数:54,
示例21: oscap_element_depthint oscap_element_depth(xmlTextReaderPtr reader){ int depth = xmlTextReaderDepth(reader); switch (xmlTextReaderNodeType(reader)) { case XML_READER_TYPE_ATTRIBUTE: case XML_READER_TYPE_TEXT: case XML_READER_TYPE_ENTITY_REFERENCE: return depth - 1; default: return depth; }}
开发者ID:galaris,项目名称:openscap,代码行数:12,
示例22: xmlreader_depth/* reader:depth() */static int xmlreader_depth(lua_State *L) { xmlreader xr = check_xmlreader(L, 1); int ret = xmlTextReaderDepth(xr); if (ret != -1) { lua_pushinteger(L, ret); return 1; } else { lua_pushnil(L); xmlreader_pusherror(L); return 2; }}
开发者ID:anhk,项目名称:lua-xmlreader,代码行数:13,
示例23: while // Return value: true if next node has a sub-tree bool XMLReader::nextTypeContainsChildren(xmlTextReaderPtr &reader, const string §ion_name, string &name, string &value, bool &state_end_found, int &depth) { state_end_found = false; depth = -1; int r = 1; bool done=false, subtree_found=false; while ( (r==1) && (!state_end_found) && (!done) ) { xmlChar *localName=xmlTextReaderLocalName(reader), *localValue=NULL; depth = xmlTextReaderDepth(reader); switch ( xmlTextReaderNodeType( reader ) ) { case 15: state_end_found = (xmlStrEqual(localName, BAD_CAST section_name.c_str()) != 0); break; case 1: r = xmlTextReaderRead(reader); if (r==1) { switch ( xmlTextReaderNodeType(reader) ) { case 3: if (!xmlTextReaderHasValue(reader)) throw std::runtime_error("Huh?! Expected a value now. This xml should maybe not be valid?!"); localValue = xmlTextReaderValue(reader); name = string((char *)localName); value = string((char *)localValue); r = xmlTextReaderRead(reader); done = true; break; case 14: if (!xmlTextReaderHasValue(reader)) throw std::runtime_error("Huh?! Expected a value now. This xml should maybe not be valid?!"); localValue = xmlTextReaderValue(reader); name = string((char *)localName); value = string((char *)localValue); r = xmlTextReaderRead(reader); done = true; subtree_found = true; } } } // end of switch (type) xmlFree(localName); if (localValue!=NULL) xmlFree(localValue); if (!done) r=xmlTextReaderRead(reader); } if (r==0) state_end_found = true; // If r==0, it makes no sense to scan for more stuff... return subtree_found; }
开发者ID:KjeFre,项目名称:tinia,代码行数:52,
示例24: parse_propfind_responsestatic response_element_t *parse_propfind_response (xmlTextReaderPtr reader){ parser_strings_t strings; response_element_t *elements; /* get internalized versions of some strings to avoid strcmp while * parsing */ strings.multistatus = xmlTextReaderConstString (reader, BAD_CAST "multistatus"); strings.dav = xmlTextReaderConstString (reader, BAD_CAST "DAV:"); strings.href = xmlTextReaderConstString (reader, BAD_CAST "href"); strings.response = xmlTextReaderConstString (reader, BAD_CAST "response"); strings.propstat = xmlTextReaderConstString (reader, BAD_CAST "propstat"); strings.prop = xmlTextReaderConstString (reader, BAD_CAST "prop"); strings.getetag = xmlTextReaderConstString (reader, BAD_CAST "getetag"); while (xmlTextReaderRead (reader) == 1 && xmlTextReaderNodeType (reader) != XML_READER_TYPE_ELEMENT) { } if (xmlTextReaderConstLocalName (reader) != strings.multistatus || xmlTextReaderConstNamespaceUri (reader) != strings.dav) { g_warning ("webdav PROPFIND result is not <DAV:multistatus>"); return NULL; } elements = NULL; /* parse all DAV:response tags */ while (xmlTextReaderRead (reader) == 1 && xmlTextReaderDepth (reader) > 0) { response_element_t *element; if (xmlTextReaderNodeType (reader) != XML_READER_TYPE_ELEMENT) continue; if (xmlTextReaderConstLocalName (reader) != strings.response || xmlTextReaderConstNamespaceUri (reader) != strings.dav) continue; element = parse_response_tag (&strings, reader); if (element == NULL) continue; element->next = elements; elements = element; } return elements;}
开发者ID:jdapena,项目名称:evolution-data-server,代码行数:49,
示例25: processTopLevelElementstatic voidprocessTopLevelElement(xmlTextReaderPtr const xmlReaderP, FILE * const ofP) { const char * const nodeName = currentNodeName(xmlReaderP); assert(xmlTextReaderNodeType(xmlReaderP) == XML_READER_TYPE_ELEMENT); assert(xmlTextReaderDepth(xmlReaderP) == 0); if (!streq(nodeName, "svg")) pm_error("Not an SVG image. This XML document consists of " "a <%s> element, whereas an SVG image is an <svg> " "element.", nodeName); else processSvgElement(xmlReaderP, ofP);}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:16,
示例26: processTopLevelNodestatic voidprocessTopLevelNode(xmlTextReaderPtr const xmlReaderP, FILE * const ofP) { unsigned int const depth = xmlTextReaderDepth(xmlReaderP); xmlReaderTypes const nodeType = xmlTextReaderNodeType(xmlReaderP); assert(depth == 0); switch (nodeType) { case XML_READER_TYPE_ELEMENT: processTopLevelElement(xmlReaderP, ofP); break; default: /* Just ignore whatever this is */ break; }}
开发者ID:Eleanor66613,项目名称:CS131,代码行数:18,
示例27: sc_xmltv_parse_creditsvoid sc_xmltv_parse_credits(xmlTextReaderPtr reader, sc_list_t **list) { sc_xmltv_credit_t *cred = NULL; int ret; xmlChar *val; sc_xmltv_credit_type_t type; sc_list_node_t *node = NULL; for (ret = xmlTextReaderRead(reader); ret == 1; ret = xmlTextReaderRead(reader)) { if (sc_xmltv_check_current_reader_node(reader, XML_READER_TYPE_END_ELEMENT, SC_XMLTV_CREDIT_NAME, SC_XMLTV_CREDIT_DEPTH)) { break; } val = xmlTextReaderName(reader); type = SC_XMLTV_CREDIT_TYPE_UNKNOWN; if ((!xmlStrcmp(val, (const xmlChar *) "actor"))) type = SC_XMLTV_CREDIT_TYPE_ACTOR; if ((!xmlStrcmp(val, (const xmlChar *) "director"))) type = SC_XMLTV_CREDIT_TYPE_DIRECTOR; if ((!xmlStrcmp(val, (const xmlChar *) "guest"))) type = SC_XMLTV_CREDIT_TYPE_GUEST; if ((!xmlStrcmp(val, (const xmlChar *) "presenter"))) type = SC_XMLTV_CREDIT_TYPE_PRESENTER; if ((!xmlStrcmp(val, (const xmlChar *) "producer"))) type = SC_XMLTV_CREDIT_TYPE_PRODUCER; if ((!xmlStrcmp(val, (const xmlChar *) "writer"))) type = SC_XMLTV_CREDIT_TYPE_WRITER; xmlFree(val); if (!xmlTextReaderIsEmptyElement(reader) && xmlTextReaderNodeType(reader) == XML_READER_TYPE_ELEMENT && type > 0 && xmlTextReaderDepth(reader) == SC_XMLTV_CREDIT_DEPTH + 1) { cred = (sc_xmltv_credit_t *) sc_xmltv_create(SC_XMLTV_CREDIT); cred->type = type; sc_xmltv_get_reader_element_value(reader, &cred->name); node = sc_list_node_create(cred); sc_list_node_append(*list, node); } }// node = NULL;}
开发者ID:AlwinEsch,项目名称:pvr.stalker,代码行数:37,
示例28: while// ref: http://xmlsoft.org/examples/index.html#reader1.cvoid xml::xmlreader(const char *filename) { LIBXML_TEST_VERSION xmlTextReaderPtr reader; if((reader = xmlReaderForFile(filename, NULL, 0)) != NULL) { while(xmlTextReaderRead(reader) == 1) { const xmlChar *name; const xmlChar *value; if((name = xmlTextReaderConstName(reader)) != NULL) { value = xmlTextReaderConstValue(reader); cout << xmlTextReaderDepth(reader) << " " << xmlTextReaderNodeType(reader) << " " << name << " " << xmlTextReaderIsEmptyElement(reader) << " " << xmlTextReaderHasValue(reader); if(value != NULL) cout << endl; cout.flush(); } } xmlFreeTextReader(reader); } xmlCleanupParser();}
开发者ID:robacklin,项目名称:lollipop,代码行数:25,
注:本文中的xmlTextReaderDepth函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ xmlTextReaderGetAttribute函数代码示例 C++ xmlTextReaderConstValue函数代码示例 |