1

次のような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>

そして今、私はタグの下にあるタグの数を取得しようとしinfoinfoいます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になるのかわかりませんか?

事前に助けてくれてありがとう。

4

1 に答える 1