我有一些看起来像这样的 xml:
<menu>
<day name="monday">
<meal name="BREAKFAST">
<counter name="Bread">
<dish>
<name>Plain Bagel
<info name="Plain Bagel">
<serving>1 Serving (90g)</serving>
<calories>200</calories>
<caloriesFromFat>50</caloriesFromFat>
</info>
</name>
</dish>
<dish>
<name>Applesauce Coffee Cake
<info name="Applesauce Coffee Cake">
<serving>1 Slice-Cut 12 (121g)</serving>
<calories>374</calories>
<caloriesFromFat>104</caloriesFromFat>
</info>
</name>
</dish>
</counter>
</meal>
</day>
</menu>
现在我正在尝试获取标签下的info
标签数量,对于第一个info
具有Plain Bagel
.
就像我说的那样,我正在为 iOS 使用 Hpple 解析器。这是我拥有和正在尝试但不能完全让它工作的东西。
- (void)getData:(NSData*)factData {
TFHpple *Parser = [TFHpple hppleWithHTMLData:factData];
NSString *XpathQueryString = @"//day[@name='monday']/meal[@name='BREAKFAST']/counter[@name='Bread']/dish/name/info[@name='Plain Bagel']";
NSArray *Nodes = [Parser searchWithXPathQuery:XpathQueryString];
NSInteger count = Nodes.count;
NSLog(@"count: %ld", count);
for (TFHppleElement *element in Nodes) {
NSLog(@"count inside: %ld", element.children.count);
}
}
第一个数是 1。这是对的,但里面的数是 7,这就是我感到困惑的地方。不知道为什么会这样。进入info
标签后,我想遍历每个标签、服务、卡路里和来自脂肪的卡路里,并获取每个标签的文本。但我不确定为什么它给出 7?
我在这里先向您的帮助表示感谢。