0

次の構造で XML フィードを作成することは可能ですか。

<item>
<product>
<make>make1</make>
<model>model1</model>
<model>model2</model>
<model>model3</model>
</product>
<product>
<make>make2</make>
<model>model1</model>
<model>model2</model>
</product>
</item>

また、これをどのように解析して、最初のテーブルにすべてのメーカーがあり、2 番目のテーブルにそのメーカーに関連するすべてのモデルが選択されているようにしますか?

前もって感謝します

4

1 に答える 1

2

これが正しい XML であるかどうかを熟考する必要があるという mkrai の意見に同意します (ただし、制御できない場合を除きます)。itemこれは、各製品がmake属性を持つ製品の配列であり、次に属性の配列であると言っていmodelます。非常に奇妙な。

しかし、あなたの質問を読んで、make の表とそれぞれのモデルの表が必要で、次のような XML を示唆している可能性があります。

<makes>
    <make>
        <name>make1</name>
        <models>
            <model>model1</model>
            <model>model3</model>
            <model>model4</model>
        </models>
    </make>
    <make>
        <name>make2</name>
        <models>
            <model>model2</model>
            <model>model5</model>
        </models>
    </make>
</makes>

ただし、それをNSXMLParser解析するために a を使用する方法を提案する前に、まず JSON を検討することをお勧めします。同等の JSON は次のようになります。

[
    {
        "name": "make1",
        "models": [
            "model1",
            "model3",
            "model4"
        ]
    },
    {
        "name": "make2",
        "models": [
            "model2",
            "model5"
        ]
    }
]

NSXMLParser私が提案する理由は、その単純な XML を解析するために多くのコードを記述する必要がある とは異なり、JSON を使用すると、1 行のコードでそれを実行できるからです。

NSArray *array = [NSJSONSerialization JSONObjectWithData:data
                                                 options:0
                                                   error:&error];
于 2013-01-03T17:33:49.863 に答える