如何使用linq to xml读取xml节点的值(单个)

时间:2010-05-08 12:32:49

标签: c# linq-to-xml

我有一个类似于下面的xml结构:

              <test>
                <test1>test1 value</test1>
               </test>

现在我正在使用LINQ to xml代码读取节点的值。

        var test = from t in doc.Descendants("test") select t.Element("test1").Value;
        Console.WriteLine("print single node value");
        foreach (var item in test)
        {
            Console.WriteLine(item);   
        }

上面的代码工作正常,但在这里我有一个单一的节点,但为了反复值我使用foreach循环,我不认为是好的..没有foreach循环做更好的方法做同样的事情 感谢。

2 个答案:

答案 0 :(得分:9)

尝试这样的事情:

using System;
using System.Linq;
using System.Xml.Linq;

public class Example
{
    static void Main()
    {
        String xml = @"<test>
                <test1>test1 value</test1>
                        </test>";

        var test = XElement.Parse(xml)
                .Descendants("test1")
                .First()
                .Value;

        Console.WriteLine(test);
    }
}

答案 1 :(得分:0)

您还可以尝试提供以下XML文件路径:

 XElement xmldoc = XElement.Load("filePath");
        var nodeValueFromXMlFile = xmldoc
             .Descendants("node name")
             .First()
             .Value;
        System.Console.WriteLine(nodeValueFromXMlFile);