Pergunta

I have this link http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=panadol&prop=revisions&rvprop=content

I need to get the content inside tag. so I used this code

private void HttpsCompleted(object sender, DownloadStringCompletedEventArgs e) {

                    WebClient wwc = new WebClient();
                    String xmlStr = "http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=" + medName + "&prop=revisions&rvprop=content";
                    wwc.DownloadStringCompleted += wwc_DownloadStringCompleted;
                    wwc.DownloadStringAsync(new Uri(xmlStr));


            }
            else
            {
                MessageBox.Show("Couldn't search for medicine!\nCheck the internet connection.");
            }
        }
        catch (Exception)
        {
            // do nothing
        }

    }

also calling this method.

                XNamespace ns = "http://www.w3.org/2005/Atom";
                var entry = XDocument.Parse(e.Result);
                var xmlData = new xmlWiki();
                var g = entry.Element(ns + "rev").Value.ToString();
            }
        }
        catch (Exception f)
        {
            MessageBox.Show(f.ToString());
        }
    }

But I am getting Null reference exception when the code executes "var g = entry.Element(ns + "rev").Value.ToString(); "

Please any help. Thank you in advance

Foi útil?

Solução

rev is not the child of root of tree. This is the path to it:

api
  query
    pages
      page
        revisions
          rev

You can use .Descendants() to reach it.

var entry = XDocument.Parse(html);
var g = entry.Descendants("rev").First().Value;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top