WPF 读取 XML 属性

本文关键字:属性 XML 读取 WPF | 更新日期: 2023-09-27 17:56:16

这是我的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 语句不起作用。 谢谢

WPF 读取 XML 属性

您可以使用以下代码段导航到所需的部分(取决于版本)并将设置作为字典获取:

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

您正在寻找类似这样的东西:

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