2011-11-29 44 views
0

我想學習如何使用VB.net搜索與LINQ的XML樹。我已經找到了C#的一些非常有幫助的帖子,但沒有爲VB.net使用VB.net訪問XML元素與LINQ(不是C#)

我想要得到的inputlocation的過程,其中名稱= 「MyProcess1」根據上面的示例鏈接,我一直在嘗試這樣的代碼:

Dim inputLocation As String = xdocument.Descendants("Configurations").Descendants("process").First(Function(c) c.Element("name").Value = "MyProcess1").Element("inputLocation").Value 

但代碼沒有返回任何值。這裏是XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Configurations> 
<process> 
<name>MyProcess1</name> 
<inputLocation> inputPath 
</inputLocation> 
<outputLocation> outputPath1 
</outputLocation> 
    </process> 
    <process> 
<name>MyProcess2</name> 
<inputLocation> inputPath2 
</inputLocation> 
<outputLocation>outputPath2 
</outputLocation> 
    </process> 
</Configurations> 
+1

試試這個: Dim inputLocation As String = xdocument.Descendants(「Configurations」)。Descendants(「process」)。First(Function(c)c.Element(「name」).Value.Equals(「MyProcess1」 ))。Element(「inputLocation」)。Value.Trim() –

+0

它的工作原理。感謝您的幫助 – bernie2436

+0

偉大的:)。我已經將其添加爲答案。 –

回答

2

試試這個:

Dim inputLocation As String = xdocument.Descendants("Configurations").Descendants("process").First(Function(c) c.Element("name").Value.Equals("MyProcess1")).Element("inputLocation").Value.Tri‌​m(); 

它基本上只是修剪\ n的值結束字符返回:)。我已經插入Equals()而不是=以防萬一,但兩者都應該工作:)。