2

これは私のXMLファイルです:

<Response>
<Ip>120.63.40.84</Ip>
<CountryCode>IN</CountryCode>
<CountryName>India</CountryName>
<RegionCode>07</RegionCode>
<RegionName>Delhi</RegionName>
<City>New Delhi</City>
<ZipCode/>
<Latitude>28.6</Latitude>
<Longitude>77.2</Longitude>
<MetroCode/>
</Response>

これは、C# で XML ドキュメント オブジェクトに読み込む方法です。

  XmlDocument doc = new XmlDocument();
  doc.Load("http://freegeoip.net/xml/");//the url

しかし、次のように個々のノードを読み取ろうとすると:

XmlNode IPnode = doc.DocumentElement.SelectSingleNode("Response/Ip");

それは私にヌルノードを与えます。コードをデバッグし、XML が XMLDocument オブジェクトに読み込まれることを確認しましたが、何らかの理由でこのような個々のノードにアクセスできません。

4

2 に答える 2

5

XPath を変更して、ルートから検索しようとしていることを示すだけです。

 XmlNode IPnode = doc.DocumentElement.SelectSingleNode("/Response/Ip");

とにかくドキュメント要素から検索しているので、以下のコードも使用できます。

 XmlNode IPnode = doc.DocumentElement.SelectSingleNode("Ip");
于 2013-01-04T07:38:36.037 に答える
2

@ryadavilli のものよりも単純で、おそらく高速な実装 (XPath 式の解析を回避する) は次のようになります。

XmlNode IPnode = doc.DocumentElement["Ip"];

... のタグ名を持つドキュメント要素の最初の子要素を見つける必要があります"Ip"

于 2015-10-20T06:55:58.750 に答える