На этом уроке мы научимся парсить XML документ. Мы напишем метод RequestInfo(), который выудит все нужные значения из XML-документы и вернёт их в основную программу.
Дата отправки отчёта:
29 ноября 2015 г.
Задание выполнено: за
1 час. 20 мин.
Чему научился:
Глубже понял XML. Научился парсить XML средствами C#.
Что было сложным:
Отыскать проблему в структуре XML. Очень важный момент: метод xmlDoc.LoadXml(xml) работать не будет, если у вас заголовок в XML-файле (<?xml version=\"1.0\"?>) начинается с пробела, со 2 строчки и т.д. Он должен находится в самом начале файла, иначе метод не сможет работать с таким XML-файлом. Что следует дописать в battle.php? Ф-ию ob_clean() перед echo $xml.
Трудности: Нашел ошибку довольно быстро и вспомнил, что читал в отчетах, как ее победить. Спасибо Владимиру Волнухину (http://www.videosharp.info/6632/checking/game7=377) за подсказку, как решить проблему с ошибкой, которая заключалась в переводе строки перед . После этой строки в файле battle.php надо обязательно вызвать функцию ob_clean(); Именно она помогла избежать ошибки.
Может стоит для будущих курсантов добавить информацию про эту функцию в описание урока?
Еще оказалось, что в php очень надо следить за лишними пробелами: такая команда работать не будет $_GET ['ocean'] ( с пробелом после GET). А в sql не будет работать COUNT (*)(после count тут тоже пробел). Только слитное написание правильное COUNT(*). Не проверял, но возможно и intval() c пробелом тоже не работает?!
Возможно все это знают, но может кому поможет описание моих ошибок .
Очень долго работает WebClient, и пока идет соединение и запрос xmla с серверa программа подвисает. У всех так?
Научился: парсить xml документы при помощи классов XmlDocument.LoadXml(для загрузки) и XmlNodeList.GetElementsByTagName(для обращения к конкретному элементу документа) Трудности: когда не заработало с первого раза, пришлось вывести содержание ошибки через catch (Exception ex)=>errMessage= ex.ToString(); Оказалось - ошибка в теге в самом документе .php интересный урок, парсинг xml оказался проще, чем я думал