libxml的使用--读取节点属性

Posted fire909090

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了libxml的使用--读取节点属性相关的知识,希望对你有一定的参考价值。

 

在上一篇文章当中,我读取了各个节点的名字和内容,现在我将读取各个节点的属性。

 

[html] view plaincopyprint?
 
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <root>  
  3. <node1>content1</node1>  
  4. <node2 attribute="yes">content2</node2>  
  5. <node3>  
  6. <subnode>go</subnode>  
  7. </node3>  
  8. </root>  

这是上一篇文章中提到的xml文件。

 

在node2这个节点上有一个属性attribute,其值是yes。我们可以使用xmlGetProp这个函数将其提取出来。这个函数包含了两个变量,一个是将要提取属性的节点指针xmlNodePtr,另一个是属性的名称。

[cpp] view plaincopyprint?
 
 
  1. xmlChar* attr_value = NULL;  
  2. if(!xmlStrcmp(node->name, (const xmlChar*)"node2")) {  
  3.     attr_value = xmlGetProp(node, "attribute");  
  4.     printf("attribute value:%s\n",attr_value);  
  5.     xmlFree(attr_value);  
  6. }  
这样我们就提取出了yes这个字符串了!

 

 
 

以上是关于libxml的使用--读取节点属性的主要内容,如果未能解决你的问题,请参考以下文章

libxml的使用--读取xml

使用 XML::LibXML 遍历节点

libxml的使用--xpath搜索节点树

linux下使用libxml2实现对xml文件的读取及查询

如何使用 libxml2 解析来自 GInputStream (GLibGIO/GVFS) 的数据?

使用 C# 客户端读取 OPC UA 节点属性值