如何实现TouchXml Parser?

Man*_*nsi 2 iphone

我已经使用TouchXml解析器实现了演示.它工作正常.但我想像下面那样解析xml.

例:

<Root>
<tag1></tag1>
<tag2>
      <temp1></temp1>
      <temp2></temp2>
      <temp3></temp3>
</tag2>
<tag3></tag3>

</Root>
Run Code Online (Sandbox Code Playgroud)

如何解析这种类型的例子?

小智 9

TouchXML很好用且易于使用.首先,您需要解析文档:

NSError *theError = NULL;
CXMLDocument *theXMLDocument = [[[CXMLDocument alloc] initWithXMLString:input options:0 error:&theError] autorelease];
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用XPath查询文档的结构.例如,要提取Root元素,您可以执行以下操作:

NSArray *foundRoots = [theXMLDocument nodesForXPath:@"//Root"  error:&theError]; 
CXMLElement *root = [foundRoots objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

(你经常得到数组,所以在你的情况下你可以只取第一个元素,假设它存在于文档中)

您还可以执行诸如获取元素的所有子元素之类的操作.因此,如果我们想获得所有标签,我们就可以:

NSArray *children = [root children];
Run Code Online (Sandbox Code Playgroud)

或者我们可以获得具有特定名称的标签:

NSArray *tag1 = [root elementsForName:@"tag1"];

(你再次获得一个数组,所以做正确的事情并检查)

您的数据是否符合任何架构?