0

keyvalye ペアの値を取得する現在の xml にラッパーを提供する必要があります。ここに私の現在のコードがあります:

string SID_Environment = "SID_" + EnvironmentID.ToString();
XDocument XDoc = XDocument.Load(FilePath_EXPRESS_API_SearchCriteria);
var Dict_SearchIDs = XDoc.Elements().ToDictionary(a => (string)a.Attribute("Name"), a => (string)a.Attribute("Value"));
string Search_ID = Dict_SearchIDs.Where(IDAttribute => IDAttribute.Key == SID_Environment).Select(IDAttribute => IDAttribute.Value).FirstOrDefault();
Console.WriteLine(Search_ID);

これが私のサンプルxmlです。

<APIParameters>
     <Parameter Name="SID_STAGE" Value="101198" Required="true"/>
     <Parameter Name="SID_QE" Value="95732" Required="true"/>
 </APIParameters>

このコードはサンプル xml で正常に動作していますが、いくつかのラッパーで xml を変更した後、問題に直面していることに注意してください。サンプル xml を次のように変更するには、xml にラッパーを提供する必要があります。

<DrWatson>
  <Sets>
    <Set>
      <APIParameters>
        <Parameter Name="SID_STAGE" Value="101198" Required="true"/>
        <Parameter Name="SID_QE" Value="95732" Required="true"/>
      </APIParameters>
    </Set>
  </Sets>
</DrWatson>

しかし、それを実行してコードを実行すると、エラーがスローされます。提案してください。

4

2 に答える 2

0

次のようなものが必要です:

var apiParams = doc.Descendants("APIParameters");

次に、コードを変更できます。

var Dict_SearchIDs = apiParams.Elements().ToDictionary(a => (string)a.Attribute("Name"), a => (string)a.Attribute("Value"));
于 2013-09-18T09:42:35.040 に答える