我已经使用TouchXml解析器实现了演示。它工作正常。但我想像下面那样解析xml。
示例:
<Root>
<tag1></tag1>
<tag2>
<temp1></temp1>
<temp2></temp2>
<temp3></temp3>
</tag2>
<tag3></tag3>
</Root>
如何解析此类示例?
答案 0 :(得分:9)
TouchXML非常好用且易于使用。首先,您需要解析文档:
NSError *theError = NULL;
CXMLDocument *theXMLDocument = [[[CXMLDocument alloc] initWithXMLString:input options:0 error:&theError] autorelease];
然后,您可以使用XPath查询文档的结构。例如,要提取Root元素,您可以这样做:
NSArray *foundRoots = [theXMLDocument nodesForXPath:@"//Root" error:&theError];
CXMLElement *root = [foundRoots objectAtIndex:0];
(你经常得到数组,所以在你的情况下,你可以只取第一个元素,假设它存在于文档中)
您还可以执行诸如获取元素的所有子元素之类的操作。因此,如果我们想获得所有标签,我们可以这样做:
NSArray *children = [root children];
或者我们可以获得具有特定名称的标签:
NSArray *tag1 = [root elementsForName:@"tag1"];
(再次得到一个数组,做正确的事情并检查)
您的数据是否符合任何架构?