使用VB.net(不是C#)使用LINQ访问XML元素

时间:2011-11-29 20:43:13

标签: .net xml vb.net linq

我正在尝试学习如何使用VB.net使用LINQ搜索XML树。我发现了一些非常有用的C#帖子,但没有为VB.net发布

我想得到name =“MyProcess1”的进程的inputlocation根据上面的示例链接,我一直在尝试这样的代码:

   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 个答案:

答案 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 字符:)。我已插入等于()而不是 = 以防万一,但两者都应该有效:)。