首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C/C++ 使用 libxml2 遍歷 XML 節點:取得屬性與節點內容範例

     編輯:程式設計綜合問答

遍歷邏輯

int GetProperNode(xmlNodePtr xmlCur, char *cpNodeName, char *cpPropName, char *cpValue)
{
    char *cpProp = NULL;
    while (xmlCur != NULL)
    {
        if (xmlStrcmp(xmlCur->name, (const xmlChar *)cpNodeName) == 0)
        {
            cpProp = (char *)xmlGetProp(xmlCur, (const xmlChar *)cpPropName);
            strcpy(cpValue, cpProp);
            xmlFree(cpProp);
            return 1;
        }
        if (xmlCur->children != NULL)
        {
            if (GetProperNode(xmlCur->children, cpNodeName, cpPropName, cpValue))
                return 1;
        }
        xmlCur = xmlCur->next;
    }
    return 0;
}

說明

  • 先取得根節點,再透過 children 與 next 遞迴遍歷所有節點。
  • 使用 xmlGetProp 取得指定屬性值。
  • 使用 xmlNodeGetContent 取得標籤內的文字內容。
  • 記得釋動態記憶(xmlFree)以避免記憶體洩漏。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved