2010-05-08 86 views
2

我具有類似於下面之一的XML結構的XML節點(單個)的值:如何讀取使用LINQ到XML

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

現在我讀使用以下LINQ到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循環的good..any更好的辦法 謝謝。

回答

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); 
    } 
} 
+0

這將/工作,但我從一個XML文件中讀取值。 – Wondering 2010-05-08 13:04:29

+1

@Wondering - 然後你需要做的就是將'XElement.Parse(xml)'改爲'XElement.Load(pathToYourFile)'。 – 2010-05-08 13:28:19

+0

好的,根據我的代碼,我將它改爲var res = doc.Descendants(「test1」)。First()。Value;它的工作。感謝您的幫助 – Wondering 2010-05-08 14:54:10

0

,你也可以嘗試提供諸如下面的XML文件路徑:

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