0

私のMVCアプリの一部は、データをWebサービスにPOSTし、XML応答を受信するコントローラーアクションメソッドです。応答をXDocumentに取り込む方法を理解しましたが、情報を調べてノード値のいくつかを取得する必要があります。私は調査を続けており、XPathを使用するための最も近いオプションを見つけることができます。

これが最善の方法なのか、それとも別の方法を提案するのか疑問に思います。私が使用しているXMLは次のようになります。

<HistoryResponse>
  <ResponseType>resultsList</ResponseType>
  <Matches>0</Matches>
  <SessionID>75803234r23df3de</SessionID>
  <RecStart>0</RecStart>
  <ClientCode></ClientCode>
  <Results></Results>
</HistoryResponse>

確認し、MatchesとSessionIDを取得して、値を変数に入れる必要があります。

ありがとう。

4

3 に答える 3

1

xmlを辞書に変換できます

var xDoc = XDocument.Parse(xmlstring); //XDocument.Load(fileName)
var dict = xDoc.Element("HistoryResponse")
               .Elements()
               .ToDictionary(e => e.Name.LocalName, e => e.Value);

として使用します

string sessionID = dict["SessionID"];
于 2012-12-12T19:45:45.583 に答える
0

LINQtoXMLを使用します。(名前空間をインポートする必要がありますSystem.XML.Linq

string filePath = Server.MapPath(@"../YourFileLocation/somexml.xml");

//you can load the XML from file/stream /string etc...

XElement elem = XElement.Load(filePath);
if (elem != null)
{
   string sessionId=elem.Element("SessionID").Value;
   string matches=elem.Element("Matches").Value;
}

XMLを文字列で取得している場合は、Parseメソッドを使用してそれをXElementにロードできます。

string xml = "<HistoryResponse><Item>XML Item A</Item></HistoryResponse>";
XElement elem = XElement.Parse(xml);
于 2012-12-12T19:40:30.033 に答える
0

それは間違いなくXPath式で機能します。XDocumentでXPathを使用する方法を確認しますか?それを行う方法についての情報。

于 2012-12-12T19:40:35.117 に答える