我在访问CoveredPersons和CoveredPerson Tag值时遇到问题。
<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>
这是我到目前为止所做的:
foreach (var xSubscribedOptions in (from suboptions in xDoc.Descendants("SubscribedOptions")
from suboptionsOffEntity in xDoc.Descendants("SubscribedOptions").Descendants("OfferedEntity")
from suboptionsCovPerson in xDoc.Descendants("SubscribedOptions").Descendants("CoveredPerson")
from 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 }))
{ }
答案 0 :(得分:1)
你可以使用
CoveredPersonFirstName = suboptions.XPathSelectElement("./CoveredPersons/CoveredPerson/FirstName").Value
CoveredPersonLastName = suboptions.XPathSelectElement("./CoveredPersons/CoveredPerson/LastName").Value
等。对于需要从CoveredPerson标记中检索的每个元素
答案 1 :(得分:0)
包括
using System.Xml.XPath;
以获取XPath扩展方法,例如XPathSelectElement