日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

libxml2用xpath进行查找

發布時間:2024/1/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libxml2用xpath进行查找 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

xml文檔

<?xml version="1.0" encoding="UTF-8"?>

<radios>

? ? <radio>

? ? ? ? <name>Bayern</name>

? ? ? ? <url>http://mp3.webradio.antenne.de:80</url>

? ? ? ? <classification>

? ? ? ? ? ? <area>usa</area>

? ? ? ? ? ? <sytle>music</style>

? ? ? ? </classification>

? ? </radio>

? ? <radio>

? ? ? ? <name>DEU-Antenne Bayern</name>

? ? ? ? <url>http://test</url>

? ? </radio>

</radios>

上代碼

static xmlXPathObjectPtr getNodeset(xmlDocPtr doc, const xmlChar *xpath) {xmlXPathContextPtr context;xmlXPathObjectPtr result;context = xmlXPathNewContext(doc);if (context == NULL) {printf("context is NULL\n");return NULL;}result = xmlXPathEvalExpression(xpath, context);xmlXPathFreeContext(context);if (result == NULL) {printf("xmlXPathEvalExpression return NULL\n");return NULL;}if (xmlXPathNodeSetIsEmpty(result->nodesetval)) {xmlXPathFreeObject(result);printf("nodeset is empty\n");return NULL;}return result; }

playlistDoc為xmlDocPtr類型.

xmlChar *xpath = BAD_CAST("/radios/radio[name='DEU-Antenne Bayern']");//關鍵點 xmlXPathObjectPtr app_result = getNodeset(playlistDoc, xpath); if (app_result == NULL) {xmlNodeSetPtr nodeset = app_result->nodesetval;xmlNodePtr cur;for (i=0; i< nodeset->nodeNr; i++) {cur = nodeset->nodeTab[i];cur = cur->xmlChildrenNode;while (cur != NULL) {if (!xmlStrcmp(cur->name, (const xmlChar *)"name"))printf("%s\n", ((char *)XML_GET_CONTENT(cur->xmlChildrenNode)));else if (!xmlStrcmp(cur->name, (const xmlChar *)"url"))printf("%s\n", ((char *)XML_GET_CONTENT(cur->xmlChildrenNode)));cur = cur->next;}}xmlXPathFreeObject(app_result); }

輸出:

DEU-Antenne Bayern

http://mp3.webradio.antenne.de:80

DEU-Antenne Bayern

http://test

xmlChar *xpath = BAD_CAST("/radios/radio[name='DEU-Antenne Bayern']");

改成

xmlChar *xpath = BAD_CAST("/radios/radio[name='DEU-Antenne Bayern' and url='http://mp3.webradio.antenne.de:80']"); DEU-Antenne Bayern

輸出:

http://mp3.webradio.antenne.de:80

更多xpath的寫法可參考:

http://www.w3.org/TR/xpath/

http://www.w3school.com.cn/xpath/index.asp

轉自:https://blog.csdn.net/zmlovelx/article/details/8107002

總結

以上是生活随笔為你收集整理的libxml2用xpath进行查找的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。