`

libxml2 获取每个节点的值

    博客分类:
  • c++
阅读更多

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <libxml2/libxml/xmlmemory.h>
#include <libxml2/libxml/parser.h>
static char nodesXml[30][30] = {0};


int initXml()
{
	int i = 0;
	char line[200] = {0};
	FILE *fp;//打开配置文件句柄
	if((fp = fopen("xml.ini","r")) ==NULL)
	{
		fprintf(stderr, "open xml.ini error\n");
		return -1;
	}
	while(fgets(line,200,fp)!=NULL)
	{
		Trim(line);
		strcpy(nodesXml[i],line);
		i++;
	}
	fclose(fp);
	return 0;
}

int parseXML(char* pXml,int length)
{
	int i = 0;
	xmlDocPtr doc = xmlParseMemory(pXml, length);
	xmlNodePtr cur = xmlDocGetRootElement(doc); 
	cur = cur->children;
	while ( cur != NULL) 
	{
		xmlChar* key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 
		printf("【%s = %s】\n",nodesXml[i],key); 
		xmlFree(key);
		cur = cur->next; 
		i++;
	}  
}
 
分享到:
评论
1 楼 sblig 2010-11-19  
cur->name  节点名

相关推荐

    libxml2编程手册

    每个节点可以是元素、属性、文本等。 2. **xmlDocPtr**:代表整个XML文档,通常用于解析后的文档树根节点。 3. **xmlAttrPtr**:表示XML文档中的属性节点。 4. **xmlChar**:libxml2使用的一种字符类型,用于处理XML...

    c++中使用libxml2读取xml文件

    4. **提取数据**:对于每个子节点,提取其文本内容或属性值。 ```cpp #include #include &lt;libxml/parser.h&gt; int main(int argc, char *argv[]) { xmlDocPtr doc; // 解析文档指针 xmlNodePtr curNode; // 结点...

    libxml2-git-snapshot.tar.gz

    提到的"libxml2-2.9.4"是libxml2的一个特定版本,通常每个版本会修复已知问题,增加新功能,提升性能。例如,2.9.4可能包含了一些安全补丁,性能优化,以及对新XML标准的支持。 总结,libxml2是一个强大的XML处理库...

    Ubuntu下C语言使用libxml2库创建、解析xml文件

    通常,你应该检查每个函数的返回值,并在发生错误时调用`xmlErrorLast`获取错误信息。 总的来说,libxml2库为Ubuntu下的C语言开发提供了强大的XML处理能力。通过理解和应用这些基本操作,你可以轻松地构建复杂的XML...

    libxml2test_xml_文本解析_capturedetv_

    3. 解析XML元素:对于每个节点,可以使用`xmlNodeGetContent`获取元素文本,或者`xmlHasProp`检查属性是否存在。 4. 修改XML:如果需要,可以使用`xmlNewProp`添加属性,`xmlSetProp`修改属性,`xmlNewChild`添加子...

    libxml2应用实例.doc

    XML 文档由一系列元素构成,每个元素都有开始标记(如 `&lt;files&gt;`)和结束标记(如 `&lt;/files&gt;`),并可以包含属性、文本和其他元素。XML 的主要特点包括:\n\n1. **自我描述性**:元素标签定义了数据的意义。\n2. **...

    libxml in iOS(Xcode)

    - 上述代码首先用`xmlReadMemory`加载XML数据,然后获取根元素,接着遍历XML树以处理每个节点。 4. **自定义NSUserDefault模拟** - `NSUserDefaults`是iOS系统提供的用于存储轻量级用户数据的类,但有时可能需要...

    以libxml2和minizip读取xlsx文件的示例

    3. 对每个解析出的XML文件,根据其内容类型(比如sheet、styles等),解析相应的数据。 4. 解析到的数据可能包括工作表的行、列、单元格值,单元格的样式信息,以及可能的公式。 5. 将这些数据结构化,形成易于操作...

    详细结构操作libxml.doc

    - **属性值**:每个 XML 元素可以有零个或多个属性,属性通常包含描述元素的额外信息。 - **元素值**:指元素内部的文本内容。 #### 2. 3级节点 这表明文档中将探讨如何处理具有三层嵌套结构的 XML 节点。例如,一...

    libxml很好的学习教程

    - **代码示例**:针对每个功能提供的具体代码实现。 #### 三、数据类型 Libxml定义了一些关键数据类型来处理XML数据的存储和操作: - **xmlChar**:代表UTF-8编码中的一个字节。用于表示XML文档中的字符。 - **...

    LIBXML教程

    // 遍历节点集中的每个节点 for (int i = 0; i &lt; xpathObj-&gt;nodesetval-&gt;nodeNr; i++) { xmlNodePtr node = xpathObj-&gt;nodesetval-&gt;nodeTab[i]; printf("Keyword content: %s\n", (char *)node-&gt;content); } } ...

    linux下libxml库编程[文].pdf

    DOM(Document Object Model)是XML文档的一种表示方式,它将XML文档转换为一棵由节点组成的树形结构,每个节点对应XML文档的一个部分。通过DOM,开发者可以方便地访问和修改XML文档的内容、结构和样式。常见的DOM...

    GDataXMLNode文件

    你可以遍历这个数组来访问每个节点。 4. **查询节点**:使用`XPath`表达式,可以方便地找到XML文档中的特定节点。例如,`-[GDataXMLDocument nodeForXPath:error:]`方法允许你根据XPath查询返回一个匹配的节点。 5...

    C++ 编写XML类(写入,解析)

    1. **XML节点(XML Node)**:每个XML文档都是由一系列节点构成的,如元素节点、属性节点、文本节点等。在C++类中,我们需要定义一个表示XML节点的数据结构,并提供相应的操作接口。 2. **XML文档(XML Document)*...

    C语言解析XML.pdf

    2. 使用循环遍历所有子节点,检查每个节点的名称,如果匹配到"storyinfo",则调用`parseStory`函数进行进一步处理。 3. 在`parseStory`函数内部,继续遍历子节点,查找"keyword"元素,然后使用`xmlNodeListGetString...

    自己写的一个linux下的xml解析例子

    4. **遍历XML结构**:使用`xmlNodePtr`指针,我们可以遍历XML结构,访问每个节点的属性、子节点等。 5. **处理节点内容**:通过`xmlNodeGetContent()`函数可以获取节点的文本内容,`xmlHasProp()`可以检查节点是否...

    TinyXml 代码

    2. **TiXmlElement**:表示XML文档中的元素,每个元素都有一个名字和可选的属性。元素可以包含文本内容、子元素和其他元素的混合体。TiXmlElement可以通过`FirstChildElement()`和`LastChildElement()`等方法来访问...

    xml.rar_c xml_xml

    `xmlNode*`结构体代表XML中的一个节点,它包含了节点类型(元素、注释、处理指令等)、名字、属性等信息。我们可以用`xmlNodePtr`指针遍历子节点,调用`xmlNextSibling()`和`xmlChildElement()`等函数来移动到下一个...

    解析XML的程序,可以读取节点属性。

    - 可读取节点属性:这意味着程序能够获取XML元素上的自定义键值对,如`&lt;element attr1="value1" attr2="value2"&gt;`。 - 最多解析两层:对于简单的XML结构,程序可以直接处理。如果需要处理更复杂的嵌套结构,可以...

Global site tag (gtag.js) - Google Analytics