繁体   English   中英

如何在VB.NET中使用LINQ从XML检索数据?

[英]How to retrieve data from XML using LINQ in VB.NET?

我找不到使用LINQ从XML文件获取值的方法。

这是代码:

Dim XMLDoc As XDocument = XDocument.Load(XMLPath)

Dim query = From ex In XMLDoc.Descendants.Elements("DSServer")
                Select New With
                    {
                    .svrname = ex.Element("ServerName"),
                    .BG = ex.Element("IsBG")
                    }

For Each t In query
    MsgBox(t.svrname.Value.ToString + " " + t.BG.Value.ToString)
Next

这是XML

<?xml version="1.0" standalone="yes"?>
<DSPaths xmlns="http://tempuri.org/DSPaths.xsd">
  <DSServer>
    <ServerName>test1Name</ServerName>
    <ServerIP>test1</ServerIP>
    <ServerPath>test1</ServerPath>
    <Destination>test1</Destination>
    <IsBG>true</IsBG>
  </DSServer>
  <DSServer>
    <ServerName>test2Name</ServerName>
    <ServerIP>test2</ServerIP>
    <ServerPath>test2</ServerPath>
    <Destination>test2</Destination>
    <IsBG>true</IsBG>
  </DSServer>
</DSPaths>

我究竟做错了什么?

该代码不返回任何内容。

如果无法从xml中删除名称空间,则需要在查询中指定名称空间。

    Dim ns As XNamespace = "http://tempuri.org/DSPaths.xsd"

    Dim query = From ex In XMLDoc.Descendants.Elements(ns + "DSServer")
                Select New With
                {
                .svrname = ex.Element(ns + "ServerName"),
                .BG = ex.Element(ns + "IsBG")
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM