0

192.com からの XML 応答を読み取ろうとしています。

これは、顧客の詳細の検証です。

XML 応答は次のように設定されます (顧客の詳細は削除されます)。

<?xml version="1.0"?>
<Search Type="Result">
  <CountryCode>GBR</CountryCode>
  <Person>
    <Name>
      <Forename>XXXXX</Forename>
      <Surname>XXXXX</Surname>
    </Name>
    <DateOfBirth>XXXX-XX-XX</DateOfBirth>
    <Age>XX</Age>
  </Person>
  <Addresses>
    <Address Current="1">
      <Premise>X</Premise>
      <Postcode>XX99 9XX</Postcode>
      <CountryCode>GBR</CountryCode>
    </Address>
  </Addresses>
  <SearchOptions>
    <ProductCode>ProveID</ProductCode>
  </SearchOptions>
  <OurReference>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</OurReference>
  <SearchDate>2012-05-30T12:39:55</SearchDate>
  <Result>
   <Summary>
      <ReportSummary>
        <DatablocksSummary>
          <DatablockSummary>
            <Name>CreditReference</Name>
            <Decision>1</Decision>
          </DatablockSummary>
        </DatablocksSummary>
      </ReportSummary>
    </Summary>
    <CreditReference Type="Result">
      <Summary>
        <Decision>1</Decision>
        <DecisionReasons>
          <DecisionReason>
            <Element>CreditReferenceSummary/TotalNumberOfVerifications</Element>
            <Decision>1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/OpenAccountsMatch</Element>
            <Decision>1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/DateOfBirthMatch</Element>
            <Decision>1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/ElectoralRollMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/ElectoralRollDateOfBirthMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/TelephoneDirectoryMatch</Element>
            <Decision>1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/BOEMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/PEPMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/OFACMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/DeceasedMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/COAMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/CIFASMatch</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/NoOfCCJ</Element>
            <Decision>-1</Decision>
          </DecisionReason>
          <DecisionReason>
            <Element>CreditReferenceSummary/NoOfOpenAccountsLenders</Element>
            <Decision>1</Decision>
          </DecisionReason>
        </DecisionReasons>
      </Summary>
      <CreditReferenceSummary>
          <CreditReferenceDecision/>
          <CreditReferenceScore/>
          <TotalNumberOfVerifications>7</TotalNumberOfVerifications>
          <OpenAccountsMatch>1</OpenAccountsMatch>
          <DateOfBirthMatch>1</DateOfBirthMatch>
          <ElectoralRollMatch>0</ElectoralRollMatch>
          <ElectoralRollDateOfBirthMatch>0</ElectoralRollDateOfBirthMatch>
          <TelephoneDirectoryMatch>1</TelephoneDirectoryMatch>
          <PhoneNumberMatch>0</PhoneNumberMatch>
          <DriverLicenceMatch/>
          <PassportMatch/>
          <DFATMatch/>
          <BOEMatch>0</BOEMatch>
          <PEPMatch>0</PEPMatch>
          <OFACMatch>0</OFACMatch>
          <DeceasedMatch>0</DeceasedMatch>
          <COAMatch>0</COAMatch>
          <CIFASMatch>0</CIFASMatch>
          <GoneAwayMatch/>
          <HighRiskAddressMatch/>
          <CommercialEntitiesAtAddressMatch/>
          <NoOfCommercialEntitiesAtAddress/>
          <NoOfCCJ>0</NoOfCCJ>
          <NoOfOpenAccountsLenders>5</NoOfOpenAccountsLenders>
          <IDVerified/>
      </CreditReferenceSummary>
      <CreditReferenceDetails>
        <StandardisedAddress Current="1">
          <SubPremise/>
          <Premise>999999</Premise>
          <SubStreet/>
          <Street>XXXXXXXXX</Street>
          <SubLocality/>
          <Locality>XXXXXXXXXXXXXXXXXXX</Locality>
          <PostTown>XXXXXXXXXXXXXXXXXXX</PostTown>
          <Region>XXXXXXXXXXXXXXX</Region>
          <Postcode>XX999XX</Postcode>
          <CountryCode>GBR</CountryCode>
        </StandardisedAddress>
      </CreditReferenceDetails>
    </CreditReference>
  </Result>
</Search>

この XML から、次の要素を抽出する必要があります。<CreditReferenceSummary>

  • <TotalNumberOfVerifications>7</TotalNumberOfVerifications>
  • <OpenAccountsMatch>1</OpenAccountsMatch>
  • <DateOfBirthMatch>1</DateOfBirthMatch>
  • <DeceasedMatch>0</DeceasedMatch>
  • <NoOfOpenAccountsLenders>5</NoOfOpenAccountsLenders>

どんな助けでも大歓迎です。前もって感謝します。

4

3 に答える 3

1

LINQ を使用して XML を読み取る

見て

XML を読み取るための LINQ

于 2012-05-31T16:16:12.083 に答える
1

ルート要素がルートと呼ばれると仮定すると、例では表示されていないため、XPath を使用して目的の要素の値を読み取ることができます。

XmlDocument doc = new XmlDocument();
doc.LoadXml(responseXml);
int totalNumberOfVerifications = int.Parse(doc.SelectSingleNode("Search/Result/CreditReference/CreditReferenceSummary/TotalNumberOfVerifications"));
// etc.

または、代わりに、XML デシリアライゼーションを使用して、XML からのデータでオブジェクトを膨らませることもできます。周りを検索すると、その例がたくさん見つかると思います。

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx

于 2012-05-31T16:47:53.840 に答える
0

このライブラリと XPath を使用して値を取得できます: https://github.com/ChuckSavage/XmlLib/

XElement root = XElement.Parse(string); // or .Load(file)
int TotalNumberOfVerifications = root.XGetElement("//TotalNumberOfVerifications", 0);
int OpenAccountsMatch = root.XGetElement("//OpenAccountsMatch", 0);
int DateOfBirthMatch = root.XGetElement("//DateOfBirthMatch", 0);
int DeceasedMatch = root.XGetElement("//DeceasedMatch", 0);
int NoOfOpenAccountsLenders = root.XGetElement("//NoOfOpenAccountsLenders", 0);

XGetElement の構文は次のとおりです。

public T XGetElement<T>(xpath search string, default value to use if not found, param objects for search)
于 2012-06-05T10:43:30.223 に答える