次のような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になるのかわかりませんか?
事前に助けてくれてありがとう。