Jump to content
infe

XML, query xpath

Recommended Posts

infe

Boas, tou com uns problemas em fazer querys de Xpath no C#, depois de várias horas de pesquisa consegui chegar a algo, mas não está a funcionar e não consigo encontrar o erro ao certo.

O código é este

//xml
string localURL = "http://www.google.com/ig/api?weather=Lisboa"; // var localizao xml
// variaveis xpath
XPathDocument Doc = newXPathDocument(localURL);
XPathNavigator navigator = Doc.CreateNavigator();
String strExpression;
strExpression = "/xml_api_reply/weather/forecast_information/city"; // var com o caminho absoluto no XML
XPathNodeIterator iterator = navigator.Select(strExpression);
MessageBox.Show(iterator.Current.Name.ToString());
MessageBox.Show(iterator.Current.Value.ToString());

O XML em questão é um XML do google com dados meteorológicos, podem ver http://www.google.com/ig/api?weather=Lisboa, a intenção seria localizar o caminho absoluto de forma a poder retirar apenas alguns valores do xml, nomeadamente a temperatura actual, e a mínima/máxima dos próximos dias.

Actualmente quando executo, a messagebox não mostra qualquer tipo de valor.

Alguém consegue ver o que está errado?

Também estou aberto a sugestões para retirar os dados do XML de outras maneiras, é a primeira vez que estou a utilizar XML, esta provavelmente não deve ser a mais certa.

Obrigado

Share this post


Link to post
Share on other sites
Tiago Salgado

Tens aqui um exemplo rápido (só tens que adaptar ao que realmente precisas):

        try
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(@"http://www.google.com/ig/api?weather=Lisboa");
            if (doc.HasChildNodes)
            {
                XmlNodeList nl = doc.SelectNodes("//forecast_conditions");
                foreach (XmlNode node in nl)
                {
                    Response.Write(string.Format(@"Low: {0} | Hight: {1} <br />",node["low"].Attributes["data"].Value,node["high"].Attributes["data"].Value));
                }
            }
        }
        catch (Exception ex)
        {
           
        }

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.