Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 简单LINQ到XML_C#_Xml_Linq_Select_Linq To Xml - Fatal编程技术网

C# 简单LINQ到XML

C# 简单LINQ到XML,c#,xml,linq,select,linq-to-xml,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</Val

在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>
我希望检索以下值:

价值1 价值2 价值3 价值4 我能帮点忙吗

编辑

对不起,我想补充一点,我想把这些值放在本地字段中

例如,以下是字段名称:

string Value1;
string Value2;
string Value3;
string Value4;

可以帮助我将LINQ语句中的值放入本地字段吗?

当前代码存在各种错误:

当XML中没有属性时,您正在使用属性 您试图对子体使用Value属性,但子体返回IEnumerable 你没有在任何地方使用2级 您正在寻找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")
             };

您当前的代码存在各种错误:

当XML中没有属性时,您正在使用属性 您试图对子体使用Value属性,但子体返回IEnumerable 你没有在任何地方使用2级 您正在寻找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")
             };