私は条件に基づいて2つの値を取得する必要がある辞書/リストbalance_sign_dictを持っています。 これはソースXMLです。辞書/リストから値を解析する
<Value>
<Signature>-873</Signature>
<Amount>1501042000</Amount>
</Value>
以下のようなデータを解析したいと思います。 条件付きデータを解析する方法を教えてください(例えば、 "Signature"ノードの "Amount"ノードの値が-873の場合)1501042000
一般的な構文解析方法が必要です下の辞書からの値。 balance_sign_dictの
印刷の説明:ここでは
(
{
nodeChildArray = (
{
nodeContent = "-873";
nodeName = Signature;
},
{
nodeContent = 1501042000;
nodeName = Amount;
}
);
nodeName = Value;
},
{
nodeChildArray = (
{
nodeContent = "-1228";
nodeName = Signature;
},
{
nodeContent = 428586000;
nodeName = Amount;
}
);
nodeName = Value;
},
{
nodeChildArray = (
{
nodeContent = "-1140";
nodeName = Signature;
},
{
nodeContent = 79370000;
nodeName = Amount;
}
);
nodeName = Value;
},
は、私が今しようとしていますものです。
for (NSDictionary *valueNode in balance_sign_dict){
for (NSArray *nodeChildArray in [valueNode objectForKey:@"nodeChildArray"]){
NSString *tmpNodeName = [nodeChildArray objectAtIndex:1];
NSDictionary *tmpD = [valueNode objectAtIndex:1];
if ([tmpNodeName isEqualToString:@"Signature"]) {
tmpSignVal = [nodeChildArray objectAtIndex:0];
if ([tmpSignVal isEqualToString:@"-873"]) {
tmpSignAmt = [nodeChildArray objectAtIndex:1];
}
}
何らかの理由でnodeChildArrayの2番目の部分が削除されます。 nodeContent = 1501042000; nodeName =金額。
その部分にアクセスする方法がわかりません。
助けてください。 }
}
実際には、代替実行中に取得するものです。 nodeChildArrayの
印刷記述: {タイプ=可変辞書、カウント= 2、 エントリ=> 0:{内容= "nodeNameの"} = {内容= "署名"} 1:{内容=「nodeContent 「} = {内容= "-1507" nodeChildArrayの} }
印刷記述: {タイプ=可変辞書、カウント= 2、 エントリは=> 0:{内容= "nodeNameの"} = {内容= "Amount"} 1:{contents = "nodeContent"} = {contents = "631000"} }
署名値と一致する金額の値はどのようにして取得できますか?
ヘイトムソン...ありがとうございます。答えは、私が探しているもののラインに沿っているようです。 私はこの関数を使ってSignature のために渡されたものに基づいて値を返すことができますか? Signatureノードの値が-873の場合)1501042000 つまり、関数に "-873"というシグネチャを渡すと、返されます。1501042000 – testndtv
@Thomson Comer:There nodeChildArrayの型に問題があるようです。実際には、配列ではなくdictを返すようです。私はデバッガをチェックインしました。その結果、まだ正しい結果が得られていません。 – testndtv
hmthur、申し訳ありませんが、私のミスがどこにあるのか分かります。私は答えを更新し、それは今あなたが求めていることを行うはずです。 [myDict objectForKey:@ " - 873"]がbalance_sign_dictのすべての要素に対して1501042000を返すというNSDictionaryが返されます。 –