第一次尝试将Linq用于XML并遇到一些问题。我有这个XML文件需要读取并用于各种任务。该文件包含一个名为“interfaces”的实体列表。首先,我想显示这些接口的名称列表。
这是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,然后用它来查询我可能需要的任何东西。
问题是我收到查询中所有内容的错误消息。这里有几个:
这里有什么问题?
答案 0 :(得分:1)
如果你想调用变量'interface'(这是一个保留字),你需要将其转义,如下所示:
var v = from @interface in this.Elements("Interface")
select @interface.Element("InterfaceName").Value;
可能更好地重命名它......