良い一日、LINQクエリ、複数レベル
は、どのように私は次のXMLを照会し、例えば、もしResidenceIsSLP値==「いいえ」ポリシーおよびスケジュールの名前を返すことができます。
さらに、このXMLフォーマット/レイアウトはOKでも深すぎるのですか?3つのレベルよりも「深い」を試してみると固まってしまうようです。
varを作成してポリシーを取得し、そこから別のvarを作成してより深いレベルのスケジュールを取得することはできますが、単一のクエリから実行する方法はありますか?
私は新しく選択して、警察名とスケジュール名を返すことができるように2つの選択肢を組み合わせる必要があると思っています。
ありがとうございました。あなたが属するポリシーおよびスケジュール間のデカルト積を取得するダブルfrom
を使用して
var result= from e in doc.Decendants("Policy")
from s in e.Decendants("Schedule")
where s.Element("ResidenceIsSLP").Value=="No"
select new {
PolicyName= (string)e.Element("PolicyName"),
ScheduleName= (string)s.Element("ScheduleName")
};
:
<Config>
<Policies>
<Policy Number="3">
<PolicyName>AD_EXCHANGE</PolicyName>
<General>
<PerformSnapshot>Enabled</PerformSnapshot>
<DataClassification>Platinum</DataClassification>
</General>
<Clients>
<Client Number="1">
<ClientHostname>BORHOMBX</ClientHostname>
<ClientHardware>Windows-x64</ClientHardware>
<ClientOS>Windows</ClientOS>
<ClientPriority>0</ClientPriority>
</Client>
</Clients>
<Schedules>
<Schedule Number="1">
<ScheduleName>AD_PLATINUM_DAILY_FULL</ScheduleName>
<ResidenceIsSLP>Yes</ResidenceIsSLP>
</Schedule>
<Schedule Number="2">
<ScheduleName>AD_PLATINUM_MONTHLY_FULL</ScheduleName>
<ResidenceIsSLP>Yes</ResidenceIsSLP>
</Schedule>
</Schedules>
</Policy>
</Policies>
</Config>
を使用して、あなたが掲示全体のXMLを解析または? –