0

こんにちは、親切に私を助けて..

これが私のxmlです

<ns1:UpdateReserves
 xmlns:ns1="http://XLCapital.XLI.WIS.ClaimService/1.0"
 xmlns:ns2="http://schemas.datacontract.org/2004/07/XLCapital.XLGS.Integration.Core.Foundation"
 xmlns:ns0="http://XLCapital.XLI.WIS.ClaimService/Schemas/1.0"
 xmlns:ns3="http://XLCapital.XLGS.Integration.Core.Foundation/3.0">
<ns1:oReserves> <ns0:IntegrationProcessInfo>
<ns3:GlobalTrackingID>C553BF2BE7DAA91B</ns3:GlobalTrackingID>
<ns3:SystemOfOrigin>GCS</ns3:SystemOfOrigin>
<ns3:ParentMessageID>55d242d8-547e-4088-ab68-3a19fca2d7fe</ns3:ParentMessageID>
<ns3:IOPCorrelationID>7DDC4C25B33D3DED</ns3:IOPCorrelationID>
<ns3:IOPSequenceNumber>6</ns3:IOPSequenceNumber>
</ns0:IntegrationProcessInfo> <ns0:GetClaimHeader>
<ns0:GCSClaimNumber>0001602579</ns0:GCSClaimNumber>
<ns0:PolicyNumber>DPR9406003</ns0:PolicyNumber>
<ns0:PolicySystem>WINUS</ns0:PolicySystem>
<ns0:EntitySourceType>GCS</ns0:EntitySourceType>
<ns0:SourceClaimNumber> <ns3:KeyType>CLAIMID</ns3:KeyType>
<ns3:CommonKey>C446A11E20613C0D                    </ns3:CommonKey>
<ns3:SystemKey>05101617</ns3:SystemKey> </ns0:SourceClaimNumber>
<ns0:TransactionDate>2011-07-22T18:21:25.687</ns0:TransactionDate>
<ns0:UserId>A014440</ns0:UserId>
<ns0:WinsProdCode>GLP</ns0:WinsProdCode> <ns0:ProvisionalIndicator
xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</ns0:GetClaimHeader> <ns0:Reserves> <ns0:Reserve>
<ns0:FinancialTransactionId>3AAFF97D7D8DB7E9</ns0:FinancialTransactionId>
<ns0:ClaimantMappedKey> <ns3:KeyType>COVERAGEID</ns3:KeyType>
<ns3:CommonKey>AB0E091A59AC92DD                    </ns3:CommonKey>
<ns3:SystemKey>05101617-10</ns3:SystemKey> </ns0:ClaimantMappedKey>
<ns0:ReserveDetails> <ns0:ReserveDetail>
<ns0:FinancialTransactionDetailId>1B46392A1D5020F2</ns0:FinancialTransactionDetailId>
<ns0:TransactionType>I</ns0:TransactionType>
<ns0:ReserveAmount>0.000000</ns0:ReserveAmount> </ns0:ReserveDetail>
</ns0:ReserveDetails> </ns0:Reserve> <ns0:Reserve>
<ns0:FinancialTransactionId>F523CD61D5D61F29</ns0:FinancialTransactionId>
<ns0:ClaimantMappedKey> <ns3:KeyType>COVERAGEID</ns3:KeyType>
<ns3:CommonKey>AB0E091A59AC92DD                    </ns3:CommonKey>
<ns3:SystemKey>05101617-10</ns3:SystemKey> </ns0:ClaimantMappedKey>
<ns0:ReserveDetails> <ns0:ReserveDetail>
<ns0:FinancialTransactionDetailId>F7D6CB741A0115BC</ns0:FinancialTransactionDetailId>
<ns0:TransactionType>E</ns0:TransactionType>
<ns0:ReserveAmount>4741.000000</ns0:ReserveAmount>
</ns0:ReserveDetail> </ns0:ReserveDetails> </ns0:Reserve>
</ns0:Reserves> </ns1:oReserves> </ns1:UpdateReserves>

xml には複数の反復ノードがあります。ノード名と値をキーと値のペアとして辞書に追加する必要がありますが、辞書では重複したキーを追加できません。では、どうすればよいのでしょうか?

ノード名に追加して一意のキーとして追加できるように、現在のノードの数を取得する方法がわかりません。

これが私のコードです

public void BuildDataTable(XmlNode node)
{
    XmlNode nodWorking;

    if (node.NodeType == XmlNodeType.Element)
    {
        if (node.HasChildNodes)
        {
            nodWorking = node.FirstChild;
            while (nodWorking != null)
            {
                if (nodWorking.NodeType != XmlNodeType.Element)
                {
                    dictname.Add(node.ParentNode.Name.ToString() + node.Name.ToString(), node.InnerText);
                }

                BuildDataTable(nodWorking);
                nodWorking = nodWorking.NextSibling;
            }
        }
    }
}
4

1 に答える 1