使用单个数据获取XML

时间:2013-05-19 01:55:47

标签: c# xml

此网站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数据

2 个答案:

答案 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;
    ...
}