簡體   English   中英

如何在Visual Studio中將URL xml響應中的值分配給變量?

[英]How to assign value from url xml response to a variable in visual studio?

我有一段代碼查看URL“ https://freegeoip.net/xml/ ”並創建一個XML文檔。 該URL的xml如下所示:

<Response>
    <IP>111.11.1.111</IP>
    <CountryCode>GB</CountryCode>
    <CountryName>United Kingdom</CountryName>
    <RegionCode>ENG</RegionCode>
    <RegionName>England</RegionName>
    <City></City>
    <ZipCode></ZipCode>
    <TimeZone>Europe/London</TimeZone>
    <Latitude>22</Latitude>
    <Longitude>0.9</Longitude>
    <MetroCode>0</MetroCode>
</Response>

我可以看到有一個具有字段和值的InnXML和OuterXML。

string url = @"https://freegeoip.net/xml/";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(url);

我想將此XML文檔的某些字段分配給變量,例如:-RegionName -City -Latitude -Longitude

一種選擇是使用SelectSingleNode獲取特定屬性

XmlNode node = xmlDoc .SelectSingleNode("//Response//RegionName");
var regionName = node.InnerText;

另一個是將xml反序列化為對象:

XmlSerializer serializer = new XmlSerializer(typeof(Response));
var stringReader = new StringReader(thexml);
Response response = (Response)serializer.Deserialize(stringReader);


public class Response
{
    public string IP { get; set; }
    public string CountryCode { get; set; }
    public string CountryName { get; set; }
    public string RegionCode { get; set; }
    public string RegionName { get; set; }
    public string City { get; set; }
    public string ZipCode { get; set; }
    public string TimeZone { get; set; }
    public string Latitude { get; set; }
    public string Longitude { get; set; }
    public string MetroCode { get; set; }
}

現在,您已經在response變量中擁有了所需的一切。

更新資料

要從網址獲取xml:

XmlTextReader reader = new XmlTextReader (URLString);
Response response = (Response)serializer.Deserialize(reader);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM