如何筛选 XML 文件中的属性值

本文关键字:文件 属性 XML 何筛选 筛选 | 更新日期: 2023-09-27 18:33:45

请考虑以下 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" 的上下文获取记录。

那么该怎么做呢?

需要帮助。

如何筛选 XML 文件中的属性值

这个呢:

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 }));