0

该站点http://geoiptool.com/data.php以 XML 格式报告数据

<markers> 
    <marker lat="xxx" lng="xxx" city="xxx" 
        country="xxx" host="xxx" ip="xx" code="xx"/> 
</markers>

是否有可能获得纬度、液化天然气、城市和国家?我试过这个:

XmlDocument doc = new XmlDocument();
doc.Load("http://geoiptool.com/data.php");
string xmlcontents = doc.InnerXml;

但返回所有 xml 数据

4

2 回答 2

2

获得要查找的节点(标记)后,您可以从中获取属性。请注意,在访问属性之前检查属性是否为空通常是个好主意。这是获取 lat 属性的示例:

    XmlDocument doc = new XmlDocument();
    doc.Load("http://geoiptool.com/data.php");

    var marker = doc.SelectSingleNode("//markers/marker");
    string lat = marker.Attributes["lat"].Value;
于 2013-05-19T02:23:44.943 回答
2

另一种选择(而不是XmlDocument)是使用XElement. 这允许使用 Linq,这使一切变得更好。

XElement root = XElement.Load("http://geoiptool.com/data.php"); //check me on that, not sure if it will handle urls
foreach(var marker in root.Elements("marker"))
{
    string lat = marker.Attribute("lat").Value;
    string lng = marker.Attribute("lng").Value;
    ...
}
于 2013-05-19T02:32:06.383 回答