xml c libxml類庫使用

來源:互聯網
上載者:User

xml

參考地址:
http://jianlee.ylinux.org/Computer/C/libxml.html

執行個體:

/*
* =====================================================================================
*
* Filename: xml.c
*
* Description:
*
* Version: 1.0
* Created: 07/07/2011 11:47:54 AM
* Revision: none
* Compiler: gcc
*
* Author: kangle.wang (mn), wangkangluo1@gmail.com
* Company: APE-TECH
*
* =====================================================================================
*/

#include <stdio.h>
#include <stdlib.h>
#include <libxml/parser.h>
#include <libxml/tree.h>

int main (int argc, char **argv)
{
xmlDocPtr pdoc = NULL;
xmlNodePtr proot_node = NULL,pnode = NULL,pnode1 = NULL;

// 建立一個新文檔並設定 root 節點
// 一個 XML 檔案只有一個 root 節點
pdoc = xmlNewDoc (BAD_CAST "1.0");
proot_node = xmlNewNode (NULL, BAD_CAST "根節點");
xmlNewProp (proot_node, BAD_CAST "版本", BAD_CAST "1.0");
xmlDocSetRootElement (pdoc, proot_node);

pnode = xmlNewNode (NULL, BAD_CAST "子節點1");
// 建立上面 pnode 的子節點
xmlNewChild (pnode, NULL, BAD_CAST "子子節點1", BAD_CAST "資訊");
// 添加子節點到 root 節點
xmlAddChild (proot_node, pnode);

pnode1 = xmlNewNode (NULL, BAD_CAST "子子節點1");
xmlAddChild (pnode, pnode1);
xmlAddChild (pnode1,xmlNewText (BAD_CAST "這是更低的節點,子子子節點1"));

// 還可以這樣直接建立一個子節點到 root 節點上
xmlNewTextChild (proot_node, NULL, BAD_CAST "子節點2", BAD_CAST "子節點2的內容");
xmlNewTextChild (proot_node, NULL, BAD_CAST "子節點3", BAD_CAST "子節點3的內容");

// 儲存 xml 為檔案,如果沒有給出檔案名稱參數,就輸出到標準輸出
xmlSaveFormatFileEnc (argc > 1 ? argv[1]:"-", pdoc, "UTF-8", 1);

// 釋放資源
xmlFreeDoc (pdoc);
xmlCleanupParser ();
xmlMemoryDump ();
return 0;
}

編譯:gcc -g -Wall -O0 xml.c -o xml -I /usr/include/libxml2 -lxml2

運行:./xml test.xml

結果:

<?xml version="1.0" encoding="UTF-8"?>
<根節點 版本="1.0">
<子節點1>
<子子節點1>資訊</子子節點1>
<子子節點1>這是更低的節點,子子子節點1</子子節點1>
</子節點1>
<子節點2>子節點2的內容</子節點2>
<子節點3>子節點3的內容</子節點3>
</根節點>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.