libxml¿â½âÎöXMLÎļþ
Ð÷ÂÛ
LibxmlÊÇÒ»¸öÓÐÃâ·ÑÐí¿ÉµÄÓÃÓÚ´¦ÀíXML¡¢¿ÉÒÔÇáËÉ¿çÔ½¶à¸öƽ̨µÄCÓïÑÔ¿â¡£LibxmlʵÏÖÁ˶Á¡¢´´½¨¼°²Ù×ÝXMLÊý¾Ý¹¦ÄÜ¡£
Õâ¸öÖ¸ÄÏ»ùÓÚÒ»¸ö¼òµ¥µÄXMLÓ¦Óá£
Êý¾ÝÀàÐÍ
Libxml ¶¨ÒåÁËÐí¶àÊý¾ÝÀàÐÍ£¬ËüÒþ²ØÁËÔÓÂÒµÄÀ´Ô´ÒÔÖÂÄã²»±Ø´¦ÀíËü³ý·ÇÄãÓÐÌØ¶¨µÄÐèÒª¡£xmlChar Ìæ´úchar,ʹÓÃUTF-8±àÂëµÄÒ»×Ö½Ú×Ö·û´®¡£Èç¹ûÄãµÄÊý¾ÝʹÓÃÆäËü±àÂ룬Ëü±ØÐ뱻ת»»µ½UTF-8²ÅÄÜʹÓÃlibxmlµÄº¯Êý¡£ÔÚlibxml±àÂëÖ§³ÖWEBÒ³ÃæÓиü¶à¹ØÓÚ±àÂëµÄÓÐÓÃÐÅÏ¢¡£
XmlDoc °üº¬ÓɽâÎöÎĵµ½¨Á¢µÄÊ÷½á¹¹£¬xmlDocPtrÊÇÖ¸ÏòÕâ¸ö½á¹¹µÄÖ¸Õë¡£
xmlNodePtr and xmlNode °üº¬µ¥Ò»½áµãµÄ½á¹¹xmlNodePtrÊÇÖ¸ÏòÕâ¸ö½á¹¹µÄÖ¸Õ룬Ëü±»ÓÃÓÚ±éÀúÎĵµÊ÷¡£
½âÎöÎĵµ
½âÎöÎĵµÊ±½ö½öÐèÒªÎļþÃû²¢Ö»µ÷ÓÃÒ»¸öº¯Êý£¬²¢ÓдíÎó¼ì²é¡£
¢ÙxmlDocPtr doc;
¢ÚxmlNodePtr cur;
¢Ûdoc = xmlParseFile(docname);
¢Üif (doc == NULL ) {
fprintf(stderr,"Document not parsed successfully. \n");
return;
}
¢Ýcur = xmlDocGetRootElement(doc);
¢Þif (cur == NULL) {
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return;
}
¢ßif (xmlStrcmp(cur->name, (const xmlChar *) "story")) {
fprintf(stderr,"document of the wrong type, root node != story");
xmlFreeDoc(doc);
return;
}
¢Ù¶¨Òå½âÎöÎĵµÖ¸Õë¡£
¢Ú¶¨Òå½áµãÖ¸Õë(ÐèÒªËüΪÁËÔÚ¸÷¸ö½áµã¼äÒÆ¶¯)¡£
¢Ü¼ì²é½âÎöÎĵµÊÇ·ñ³É¹¦£¬Èç¹û²»³É¹¦£¬libxml½«Ö¸Ò»¸ö×¢²áµÄ´íÎó²¢Í£Ö¹¡£
×¢ÊÍ
Ò»¸ö³£¼û´íÎóÊDz»Êʵ±µÄ±àÂë¡£XML±ê×¼Îĵµ³ýÁËÓÃUTF-8»òUTF-16Í⻹¿ÉÓÃÆäËü±àÂë±£´æ¡£Èç¹ûÎĵµÊÇÕâÑù£¬libxml½«×Ô¶¯µØÎªÄãת»»µ½UTF-8¡£
¢ÝÈ¡µÃÎĵµ¸ùÔªËØ
¢Þ¼ì²éÈ·Èϵ±Ç°ÎĵµÖаüº¬ÄÚÈÝ¡£
¢ßÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃÇÐèҪȷÈÏÎĵµÊÇÕýÈ·µÄÀàÐÍ¡£¡°Story¡±ÊÇÔÚÕâ¸öÖ¸ÄÏÖÐʹÓÃÎĵµµÄ¸ùÀàÐÍ¡£
È¡µÃÔªËØÄÚÈÝ
ÕÒµ½ÔÚÎĵµÊ÷ÖÐÒª²éÕÒµÄÔªËØºó¿ÉÒÔÈ¡µÃËüµÄÄÚÈÝ¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃDzéÕÒ¡°story¡±ÔªËØ¡£½ø³Ì½«ÔÚÈß³¤µÄÊ÷ÖвéÕÒÎÒÃǸÐÐËȤµÄÔªËØ¡£ÎÒÃǼٶ¨ÆÚÄãÒѾÓÐÁËÒ»¸öÃûΪdocµÄxmlDocPtrºÍÒ»¸öÃûΪcurµÄxmlNodPtr¡£
¢Ùcur = cur->xmlChildrenNode;
¢Úwhile (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){
parseStory (doc, cur);
}
cur = cur->next;
}
¢ÙÈ¡µÃcurµÄµÚÒ»¸ö×Ó½áµã£¬curÖ¸ÏòÎĵµµÄ¸ù£¬¼´¡°story¡±ÔªËØ¡£
Ïà¹ØÎĵµ£º
ÀûÓÃXPath¶ÁÈ¡XmlÎļþ
Ö®ËùÒÔÒªÒýÈëXPathµÄ¸ÅÄĿµÄ¾ÍÊÇΪÁËÔÚÆ¥ÅäXMLÎĵµ½á¹¹Ê÷ʱÄܹ»×¼È·µØÕÒµ½Ä³Ò»¸ö½ÚµãÔªËØ¡£¿ÉÒÔ°ÑXPath±È×÷Îļþ¹ÜÀí·¾¶£ºÍ¨¹ýÎļþ¹ÜÀí·¾¶£¬¿ÉÒÔ°´ÕÕÒ»¶¨µÄ¹æÔò²éÕÒµ½ËùÐèÒªµÄÎļþ£»Í¬Ñù£¬ÒÀ¾ÝXPathËùÖÆ¶¨µÄ¹æÔò£¬Ò²¿ÉÒԺܷ½±ãµØÕÒµ½XML½á¹¹ÎĵµÊ÷ÖеÄÈκÎÒ»¸ö½Úµã.
¡¡¡¡²»¹ý£¬ÓÉÓÚXPath¿ÉÓ¦Ó ......
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
£¨1£©Ê¹ÓÃJDOMÊ×ÏÈÒªÖ¸¶¨Ê¹ÓÃʲô½âÎöÆ÷¡£È磺
SAXBuilder builder=new SAXBuilder(false) ......
Èý¡¢ÑµÁ··ÖÀàÆ÷
Ñù±¾´´½¨Ö®ºó£¬½ÓÏÂÀ´ÒªÑµÁ··ÖÀàÆ÷£¬Õâ¸ö¹ý³ÌÊÇÓÉhaartraining ³ÌÐòÀ´ÊµÏֵġ£
Haartraining µÄÃüÁîÐвÎÊýÈçÏ£º
£data<dir_name>
´æ·ÅѵÁ·ºÃµÄ·ÖÀàÆ÷µÄ·¾¶Ãû¡£
£vec<vec_file_name>
ÕýÑù±¾ÎļþÃû£¨ÓÉtrainingssamples ³ÌÐò»òÕßÓÉÆäËûµÄ·½·¨´´½¨µÄ£©
£bg<background_file_name& ......
Ê×ÏÈдһ¸öhtml userxmljquery.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Óû§Ð£ÑéajaxʵÀý</title>
& ......
µ½×îºóÎҲŷ¢ÏÖ΢Èí¸øµÄajax json ʵÀý¶¼ÊÇÓÐÎÊÌâµÄ£¬ºÜ¶à¶¼ÊDz»ÑÏÃܵģ¬ÌرðÊǶÔÓÚ´óСд·½Ã棬ËûÃǶ¼Ã»ÓÐ×Ðϸ׷¾¿´óСдÎÊÌ⣬µ¼ÖÂÁËÔÚfirefoxʹÓÃÓÐÎÊÌâ¡£ÏÂÃæÊÇʵÀýÄÚÓãºÁ½¸öhtmlÖ®¼äµÄ£º
<head> <title>²âÊÔajax</title> <meta http-equiv=”Content-Type” content=”text/ht ......