3

以下のように、Soap ベースの返された XML の要素値を取得します。

XML ファイル:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <SendToDSSResponse xmlns="http://tempuri.org/">
      <SendToDSSResult>
        <RC>0</RC>
        <RCD></RCD>
        <PCKT>
          <IDNO>1212</IDNO>
          <IDTYPE>051</IDTYPE>
          <NOBOX>121216</NOBOX>
          <NAME>James</NAME>
       </PCKT>
      </SendToDSSResult>
    </SendToDSSResponse>
  </soap:Body>
</soap:Envelope>

ここで、IDNO、NoBox、および Name の値を取得したいと考えています。以下のコードを使用して値を取得しようとしていますが、例外がスローされます。要素の値を取得する正しい方法は何ですか?

C# コード:

var xDoc = XDocument.Parse(cleanXml); //OR XDocument.Load(filename)      
string Name = xDoc.Descendants("Name").First().Value;
4

2 に答える 2

4

XNamespace を追加する必要があると思います。その後、ノードまたはノードの下のタグから特定の値を読み取ることができます。ConsoleApplication でこのデモを試してください。

XDocument doc = XDocument.Load("XMLFile1.xml");
var result = doc.Descendants(XNamespace.Get("http://tempuri.org/")+"NAME").First();
Console.WriteLine(result.Value);
于 2013-11-02T08:28:16.357 に答える
0

プロパティを使用Rootします。

string name = xDoc.Root.Descendants("NAME").First().Value;
于 2013-11-02T07:49:35.997 に答える