【问题标题】:WPF read an XML attributeWPF 读取 XML 属性
【发布时间】:2014-04-01 21:44:04
【问题描述】:

这是我的 XML 文件的示例

<MyApp version="1.01">
   <MySettings>
      <Setting1>1</Setting1>
      <Setting2>2</Setting2>
   </MySettings>
 </MyApp>

我想检查 XML 文件中的版本。然后,如果版本签出,请查看 MySettings. 中的元素尝试使用 LINQ 执行此操作但无法弄清楚。认为它会是这样的;

var settings = (
            from x in myXML.Descendants("MyApp").Descendants("MySettings")
            where  (string)myXML.Descendants("MyApp").Attributes("version") == "1.0" 
            select new {...

问题是我的 where 语句不起作用。谢谢

【问题讨论】:

    标签: c# xml wpf linq


    【解决方案1】:

    您可以导航到所需部分(取决于版本)并使用此 sn-p 将设置作为字典:

    string xml = @"<MyApp version='1.01'>
       <MySettings>
          <Setting1>1</Setting1>
          <Setting2>2</Setting2>
       </MySettings>
     </MyApp>";
     var doc= XDocument.Parse(xml);
    var settings = doc.Descendants("MyApp")
                      .Where(x => (string)x.Attribute("version") == "1.0")
                      .Descendants("MySettings")
                      .Elements()
                      .ToDictionary(x => x.Name.ToString(), x => (string)x);
    

    返回是:

    设置1 | 1 设置2 | 2

    【讨论】:

      【解决方案2】:

      你正在寻找这样的东西:

      myXML.Descendants("MyApp")
      .Where(x => (string)x.Attribute("version") == "1.0")
      .Select( ... );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 2021-03-07
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        相关资源
        最近更新 更多