我试图使用xpath来解析xml文档。假设我的一个nsxmlement如下所示:
<foo bar="yummy">
我正在尝试获取属性栏的值,但是我使用的任何代码解释都会返回bar=“woo”,这意味着我需要做进一步的字符串处理,以便单独访问woo和woo。
基本上我在做
NSArray *nodes = [xmlDoc nodesForXPath:@"foo/@bar" error:&error];
xmlElement = [nodes objectAtIndex:0];
有没有写上面的代码只是为了让我觉得好吃,而不是bar=“yummy”,这样我就可以不用分析字符串了?
谢谢。
假设正在使用touchxml,是否仍有类似的结果?就像只抓取属性的值,而不抓取属性“=”值“?这就需要进一步解析字符串以获取值。
最佳答案
touchxml api应该与apple的nsxml实现完全相同,所以它应该是相同的,只是您将用c-method s替换所有ns方法。
touxhxml类直接映射到nsxml类。nsxmlnode->cxmlnode,nsxmldocument->cxmldocument,nsxmllement->cxmlement。由于明显的原因,您不能混合和匹配nsxml和touchxml类。
touxhxml方法也直接映射到nsxml方法,但只支持一小部分方法。常量名和枚举名几乎相等(cxml…VS NSXML…)但常量值将不相等
reference
使用常规的apple类或touchxml框架,下面的代码将为您的示例提供字符串“yummy”。
NSArray *nodes = [xmlDoc nodesForXPath:@"./foo/@bar" error:&err];
NSString *value = [[nodes objectAtIndex:0] stringValue];
祝你好运,
布瑞恩G