1

这是我的 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 的示例)

4

1 回答 1

2

在 Cocoa文章中查看libxml2 包装器并使用 libxml2 进行 XML 解析和 XPath 查询。

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

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

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

于 2012-07-13T19:32:53.330 回答