此网站http://geoiptool.com/data.php以XML格式报告数据
<markers>
<marker lat="xxx" lng="xxx" city="xxx"
country="xxx" host="xxx" ip="xx" code="xx"/>
</markers>
是否有可能获得lat,lng,城市和国家?我试过这个:
XmlDocument doc = new XmlDocument();
doc.Load("http://geoiptool.com/data.php");
string xmlcontents = doc.InnerXml;
但返回所有xml数据
答案 0 :(得分: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;
答案 1 :(得分: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;
...
}