这是我的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的例子)只)
答案 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数据。