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

変数 'interface' (予約語) を呼び出したい場合は、次のようにエスケープする必要があります。

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

改名したほうがいいかもしれませんが…。

于 2012-09-10T15:29:49.917 に答える