c# - XML Parsing with LINQ with deep nested loops -
i having problems getting coveredpersons , coveredperson tag values.
<header> <model_name>sample model name</model_name> </header> <data> <contractnumber>0-99-54321</contractnumber> <initialeffectivedate>11/04/2011</initialeffectivedate> <contractenddate></contractenddate> <renewaldate>11/04/2021</renewaldate> <nextcontractbirthdate>11/04/2011</nextcontractbirthdate> <smokerclassification>non smoker</smokerclassification> <billingfrequency>annually</billingfrequency> <premiumwithtax>270.23</premiumwithtax> <annualpolicyfee>100.00</annualpolicyfee> <payerrelationtosubscriber></payerrelationtosubscriber> <payerasperson> <firstname>steve</firstname> <middlename1></middlename1> <lastname>jordan</lastname> <secondlastname></secondlastname> </payerasperson> <subscribedoptions> <offeredentity> <code>a-1</code> <name>sample entity</name> </offeredentity> <coveredpersons> <coveredperson> <firstname>steve</firstname> <middlename1></middlename1> <lastname>square</lastname> <birthdate>01/01/1980</birthdate> <gender>male</gender> </coveredperson> <eliminationperiod></eliminationperiod> </coveredpersons> <coverageamount>75,000.00</coverageamount> <premiumwithtax>61.50</premiumwithtax> <initialeffectivedate>11/04/2011</initialeffectivedate> <contractenddate></contractenddate> <terminationdate></terminationdate> <expirationdatetoconvert>01/01/2040</expirationdatetoconvert> <coveredpersoncount>1</coveredpersoncount> </subscribedoptions> <subscribedoptions> <offeredentity> <code>b-1</code> <name>sample entity 2</name> </offeredentity> <coveredpersons> <coveredperson> <firstname>juan</firstname> <middlename1></middlename1> <lastname>osorio</lastname> <birthdate>01/01/1980</birthdate> <gender>male</gender> </coveredperson> <eliminationperiod></eliminationperiod> </coveredpersons> <coverageamount>5,000.00</coverageamount> <premiumwithtax>0.00</premiumwithtax> <initialeffectivedate>11/04/2011</initialeffectivedate> <contractenddate></contractenddate> <terminationdate></terminationdate> <expirationdatetoconvert>01/01/2040</expirationdatetoconvert> <coveredpersoncount>1</coveredpersoncount> </subscribedoptions> <subscriber> <firstname>juan</firstname> <lastname>osorio</lastname> <middlename1></middlename1> <secondlastname>uno</secondlastname> <gender>male</gender> <age>31</age> </subscriber> <offeredentity> <name>sample base entity</name> <code>code-54321</code> </offeredentity> </data> this have far:
foreach (var xsubscribedoptions in (from suboptions in xdoc.descendants("subscribedoptions") suboptionsoffentity in xdoc.descendants("subscribedoptions").descendants("offeredentity") suboptionscovperson in xdoc.descendants("subscribedoptions").descendants("coveredperson") suboptionscovpersoncovperson in xdoc.descendants("coveredpersons").descendants("coveredperson") select new { offeredentitycode = suboptionsoffentity.element("code").value, offeredentityname = suboptionsoffentity.element("name").value, subscribedoptionscoverageamount = suboptions.element("coverageamount").value, subscribedoptionspremiumwithtax = suboptions.element("premiumwithtax").value, subscribedoptionsinitialeffectivedate = suboptions.element("initialeffectivedate").value, subscribedoptionscontractenddate = suboptions.element("contractenddate").value, subscribedoptionsterminationdate = suboptions.element("terminationdate").value, subscribedoptionsexpirationdatetoconvert = suboptions.element("expirationdatetoconvert").value, subscribedoptionscoveredpersoncount = suboptions.element("coveredpersoncount").value, coveredpersonfirstname = suboptionscovpersoncovperson.element("firstname").value, coveredpersonmiddlename1 = suboptionscovpersoncovperson.element("middlename1").value, coveredpersonlastname = suboptionscovpersoncovperson.element("lastname").value, coveredpersonbirthdate = suboptionscovpersoncovperson.element("birthdate").value, coveredpersongender = suboptionscovpersoncovperson.element("gender").value, coveredpersoneliminationperiod = suboptionscovperson.element("eliminationperiod").value })) { }
you use
coveredpersonfirstname = suboptions.xpathselectelement("./coveredpersons/coveredperson/firstname").value coveredpersonlastname = suboptions.xpathselectelement("./coveredpersons/coveredperson/lastname").value etc. each element need retrieve coveredperson tag
Comments
Post a Comment