0

第一次尝试使用 Linq to XML 并遇到一些问题。我有这个 XML 文件需要读取并用于各种任务。该文件包含一个名为“接口”的实体列表。首先,我想显示这些接口的名称列表。

这是 XML 文件:

<?xml version="1.0" encoding="utf-8" ?>
<InterfaceList>
  <Interface>
    <InterfaceName>Account Lookup</InterfaceName>
    <RequestXSD>ALREQ.xsd</RequestXSD>
    <ResponseXSD>ALRES.xsd</ResponseXSD>
  </Interface>
  <Interface>
    <InterfaceName>Balance Inquiry</InterfaceName>
    <RequestXSD>BIREQ.xsd</RequestXSD>
    <ResponseXSD>BIRES.xsd</ResponseXSD>
  </Interface>
</InterfaceList>

下面是查询代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;

namespace Stub {
    public class InterfaceList : XElement {

        public void GetInterfaceNameList() {
            var v = from interface in this.Elements("Interface")
                select interface.Element("InterfaceName").Value;
        }
    }
}

这个想法是从文件中加载 InterfaceList,然后使用它来查询我可能需要的任何内容。问题是我收到查询中所有内容的错误消息。这里有几个:

  • 错误 14 当前上下文中不存在名称“from”
  • 错误 15 找不到类型或命名空间名称“select”(您是否缺少 using 指令或程序集引用?)错误
  • 错误 16“System.Xml.Linq.XElement.Value”是“属性”,但用作“类型”

这里有什么问题?

4

1 回答 1

1

如果你想调用你的变量“接口”(这是一个保留字),你需要将它转义,如下所示:

var v = from @interface in this.Elements("Interface")
        select @interface.Element("InterfaceName").Value;

可能最好只是重命名它....

于 2012-09-10T15:29:49.917 回答