0

以下のxmlファイルを検討してください

<?xml version="1.0" encoding="utf-8"?>
<RootElement>
  <HomeSite>
    <Context enabled="1" active="1">
      <Culture>en-us</Culture>
      <Affiliate>0</Affiliate>
      <EmailAddress>sreetest@test.com</EmailAddress>
      <Password>sreesree1</Password>
    </Context>
  <Context enabled="0" active="1">
      <Culture>en-us</Culture>
      <Affiliate>0</Affiliate>
      <EmailAddress>sreetest@test.com</EmailAddress>
      <Password>sreesree1</Password>
    </Context>
  </HomeSite>
</RootElement>

現在やっています

string applicationType="HomeSite";
    XDocument xmlSkuDescDoc = null;
    xmlSkuDescDoc = XDocument.Load(@"D:\Config.xml");
    var newContextElementCollection = new List<ContextElements>();
     //get the property and values
    (from data in xmlSkuDescDoc.Descendants(applicationType)
     select data)
     .Descendants("Context")
     .Elements()
     .ToList()
     .ForEach(i => newContextElementCollection.Add(new ContextElements { Property = i.Name.ToString(), Value = i.Value }));

どこ

public class ContextElements
{
    public string Property { get; set; }
    public string Value { get; set; }
}

これで、属性値がenabled="1"であるコンテキストのレコードを取得する必要があるという新しい要件が発生しました。

では、どのようにそうするのですか?

ヘルプが必要です。

4

1 に答える 1

2

これはどうですか:

xmlSkuDescDoc.Descendants("Context")
                .Where(el => el.Attribute("enabled").Value == "1")
                .Elements()
                .ToList()
                .ForEach(i => newContextElementCollection.Add(new ContextElements { Property = i.Name.ToString(), Value = i.Value }));
于 2012-05-11T02:53:36.380 に答える