none
Необходима помощь :) RRS feed

  • Вопрос

  • Здравствуйте! У меня возник вопрос, на который не могу найти ответ. Как можно переписать содержимое Xml-документа в string? xml предварительно загружается с инф.сайта
    25 марта 2014 г. 4:56

Ответы

Все ответы

  • В каком виде у Вас XML документ?
    25 марта 2014 г. 5:09
  • Используйте свойство OuterXml.
    25 марта 2014 г. 5:26
  • О, спасибо :) А еще вопрос: мне нужно там по строчкам хмл кода пробежаться, это делать с помощью xmlreader?
    25 марта 2014 г. 5:38
  • А в чём собственно состоит задача? Не проще ли будет работать с DOM, чем бежать по строчкам? Или может сразу загружать XML документ как строку, если Вы хотите работать с ним как с текстом.
    25 марта 2014 г. 5:46
  • Вообще, мне надо погодный информер сделать :) Но я не хочу как у людей, хочу свой :) А с XML опыта не было, вот мучаю сижу его, данные на сайте то в xml файлике :)

    PS DOM - тоже темный лес :) я очень очень новичок :)

    PSS Прочитала про DOM - мне и readerа хватит, все равно только считывать данные необходимо :)
    • Изменено Karuselia 25 марта 2014 г. 6:05
    25 марта 2014 г. 5:58
  • Покажите XML и укажите, какие данные из него Вам нужно получить помогу с примерами кода.

    P.S.
    Если нет требования использовать XML DOM, то проще будет использовать объектную модель LINQ to XML.

    25 марта 2014 г. 6:07
  • xmlDoc.Load("http://informer.gismeteo.ru/xml/" + iCities[3]+ ".xml");

    iCities[3] - это индекс города с файлика (лежит на компе, выбирается с помощью DropDownList, в который предварительно загружаются данные)

    Получить мне нужно: FORECAST, PHENOMENA, PRESSURE, TEMPERATURE, WIND, RELWET. Буду благодарна, очень сильно :)

    PS Я не знаю, в том ли разделе пишу, но если надо - это ASP.NET...



    • Изменено Karuselia 25 марта 2014 г. 6:18
    25 марта 2014 г. 6:16
  • using System.Xml.Linq;
    
    XElement data=XElement.Load("http://informer.gismeteo.ru/xml/"+iCities[3]+".xml");
    foreach(XElement forecast in data.Element("REPORT").Element("TOWN").Elements("FORECAST")) {
        Console.WriteLine("{0:F}:",new DateTime((int)forecast.Attribute("year"),(int)forecast.Attribute("month"),(int)forecast.Attribute("day"),(int)forecast.Attribute("hour"),0,0));
        Console.WriteLine("    Температура: {0} - {1}",(int)forecast.Element("TEMPERATURE").Attribute("min"),(int)forecast.Element("TEMPERATURE").Attribute("max"));
        Console.WriteLine("    Давление: {0} - {1}",(int)forecast.Element("PRESSURE").Attribute("min"),(int)forecast.Element("PRESSURE").Attribute("max"));
        Console.WriteLine("    Относительная влажность: {0} - {1}",(int)forecast.Element("RELWET").Attribute("min"),(int)forecast.Element("RELWET").Attribute("max"));
    }
    25 марта 2014 г. 7:14
  • Все, все работаеть :) Спасибо огромное :)
    • Изменено Karuselia 25 марта 2014 г. 8:31
    25 марта 2014 г. 8:10
  • С ASP.NET я не работал, так что пример кода показать не могу, но по идее просто создаёте новый Label, устанавливаете свойство Text и добавляете на страницу.
    25 марта 2014 г. 8:27
  • С ASP.NET я не работал, так что пример кода показать не могу, но по идее просто создаёте новый Label, устанавливаете свойство Text и добавляете на страницу.

    Да-да, вот примерно вот так: lblDate.Text += Convert.ToString((int)forecast.Attribute("year")) + "/" + Convert.ToString((int)forecast.Attribute("month")) + "/" + Convert.ToString((int)forecast.Attribute("day")) + " " + Convert.ToString((int)forecast.Attribute("hour")) + ":00";

    Все равно большое вам спасибо :) А то я все голову ломала, хотела через XmlDocument сделать и не получалось, вечно что-то не так :)

    25 марта 2014 г. 8:42
  • Так, у меня созрел вопрос. Там в файлике есть такой параметр tod. Он там делает выборку из forecast. Как мне сделать так чтобы выбор forecasta был именно по этому параметру?
    25 марта 2014 г. 9:13
  • data.Element("REPORT").Element("TOWN").Elements("FORECAST").Where(f=>(int)f.Attribute("tod")==1)
    25 марта 2014 г. 9:26
  • Я буду любить вас до конца дней своих :))) Спасибо :))
    25 марта 2014 г. 9:33
  • Почти буду :) Он ругается, говорит мол нет в данном контексте, хотя директивы подключены все
    25 марта 2014 г. 9:40
  • using System.Linq;
    25 марта 2014 г. 9:42
  • уже, ага :) спасибо :) теперь точно буду любить :)
    25 марта 2014 г. 10:08