use*_*419 0 c# xml linq select linq-to-xml
在C#中,如何使用LINQ从XML文件中选择值?
这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<Level1>
<Level2>
<Value1>This-is-value-1</Value1>
<Value2>This-is-value-2</Value2>
<Value3>This-is-value-3</Value3>
<Value4>This-is-value-4</Value4>
</Level2>
</Level1>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码:
var doc = XDocument.Load(filename);
var values = from lv1 in doc.Descendants("level1")
from lvl2 in lv1.Descendants("Level2")
select new {
Value1 = lv1.Attribute("Value1").Value,
Value2 = lv1.Descendants("Value2").Value,
Value3 = lv1.Descendants("Value3").Value,
Value4 = lv1.Descendants("Value4").Value,
};
Run Code Online (Sandbox Code Playgroud)
我想要检索以下值:
我可以请一些帮助让这个工作吗?
编辑
抱歉,我想补充说我想将值放在本地字段中.
以下是字段名称:
string Value1;
string Value2;
string Value3;
string Value4;
Run Code Online (Sandbox Code Playgroud)
我可以帮助将LINQ语句中的值放入本地字段吗?
您当前的代码存在各种问题:
Attribute在XML中没有属性时使用Value属性Descendants,但Descendants返回IEnumerable<XElement>lv2在任何地方使用level1一个元素名称,而不是Level1.(XML区分大小写.)我怀疑你只想要:
var doc = XDocument.Load(filename);
var values = from level in doc.Descendants("Level1").Descendants("Level2")
select new {
Value1 = (string) level.Element("Value1"),
Value2 = (string) level.Element("Value2"),
Value3 = (string) level.Element("Value3"),
Value4 = (string) level.Element("Value4")
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |