我该如何阅读XML

时间:2015-01-23 19:13:20

标签: c# xml-parsing

我从网络服务获取地理信息。
我试图解析返回数据几个小时,但一直没有。

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string result = reader.ReadToEnd();
    XDocument document = XDocument.Parse(result, LoadOptions.None);

我得到了这个

 document   <html>
  <body>
    <state>Apure</state>
    <municipality>RÓMULO GALLEGOS</municipality>
    <parish>URBANA ELORZA</parish>
    <street>La Trinidad De Arauca</street>
  </body>
</html> System.Xml.Linq.XDocument

我试试

document.Elements("state")
document.Descendants("body")
document.GetElementsByTagName("state");

但没有。

我确信有一种简单的方法可以做一些基本的事情。

我正在认真考虑将其转换为字符串并自行解析。

有条件的考虑:

字段中包含的结果是变量。
因为有些信息没有所有字段。

1 个答案:

答案 0 :(得分:0)

好的,我做了一个改变。

我读了一个XElement而不是XDocument;

XElement sitemap = XElement.Parse(result, LoadOptions.None);
foreach (var bodyElement in sitemap.Elements("body"))
{
    foreach (var fieldElement in bodyElement.Elements())
    {
       Console.WriteLine(fieldElement.Name);
       Console.WriteLine(fieldElement.Value);
    }
}

可能有一种方法可以跳过第一个foreach,但仍在寻找它 @Jonesy行有效,但这意味着我必须知道字段名称。这样我就可以为我得到的值创建信息。