如何在Objective C中使用libxml2解析XML

时间:2012-07-13 19:04:59

标签: objective-c libxml2

这是我的XML

<MyXML ID="tester" Server="example.com">
  <CONF>
    <MYAPP LOCN="/Application/data/" DATADIR="/tmp/data">
     ..
  </CONF>
</MyXML>

这是我正在使用的代码

  NSString *xmlFilePath =@"/Applications/conf/MyConf.xml";
  NSLog(@"%@",xmlFilePath);
  NSData *xmlData = [NSData dataWithContentsOfFile:xmlFilePath];
  NSString *xPathQuery =@"/MyXML";
  NSArray *xmlArray = PerformXMLXPathQuery(xmlData,xPathQuery);

它为我提供了完整的XML作为NSArray。如何遍历此NSArray,或者如何使用XPath来获取完整的节点和属性。 我用过

  NSString *xPathQuery =@"/MyXML[@ID]";

但它不返回属性ID,只返回null。

我认为最好遍历NSArray,但是如何做到这一点(我是Objective C的新手,当我寻找遍历NSArray的时候,我刚刚得到了HTML NSArray的例子)只)

1 个答案:

答案 0 :(得分:2)

查看libxml2 wrapper并使用libxml2在Cocoa article中进行XML解析和XPath查询。

NSArray *PerformXMLXPathQuery(NSData *document, NSString *query);
NSArray *PerformHTMLXPathQuery(NSData *document, NSString *query);
  

对于整个XML文档,包含在NSData对象“document”中,   此函数在NSString“query”中执行XPath查询   为匹配的节点返回NSDictionary节点对象的NSArray   查询。

     

两个列出的函数之间的唯一区别是   首先需要正确的XML数据,第二个需要HTML数据。