Собственно задача, прочитать файл и пропарсить его. Полученные данные можно записать в массив для дальнейшей обработки.
private Document document = null;
private String link = "http://informer.gismeteo.ru/xml/27612_1.xml";
document = parserXML(link);
domParse(document);
public Document parserXML(String link) throws SAXException,
IOException,
ParserConfigurationException{
URL yahoo = new URL(link);
HttpURLConnection conn = (HttpURLConnection) yahoo.openConnection();
IOException,
ParserConfigurationException{
URL yahoo = new URL(link);
HttpURLConnection conn = (HttpURLConnection) yahoo.openConnection();
InputSource sourse = new InputSource(conn.getInputStream());
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(sourse);
}
Наш парсер, выбирает все необходимые данные, над которыми можно будет работать дальше:
public void domParse(Node doc){
NodeList nodelist = doc.getChildNodes();
for (int i = 0, cnt = nodelist.getLength(); i < cnt; i++) {
Node node = nodelist.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE
|| node.getNodeType() == Node.TEXT_NODE){
String element_name = node.getNodeName();
if(element_name.equals("TOWN")){
// get TOWN
// получаем атрибут элемента TOWN
System.out.println("sname = " + getAttribute(node, "sname"));
} else if(element_name.equals("FORECAST")){
// get FORECAST
} else if (element_name.equals("PHENOMENA")) {
} else if (element_name.equals("PHENOMENA")) {
// get PHENOMENA
} else if(element_name.equals("PRESSURE")){
// get PRESSURE
} else if(element_name.equals("TEMPERATURE")){
// get TEMPERATURE
} else if(element_name.equals("WIND")){
// get WIND
} else if(element_name.equals("RELWET")){
// get RELWET
}
domParse(node);
}
private String getAttribute(Node node, String attribute){
return node.getAttributes().getNamedItem(attribute).getNodeValue();
}
Комментариев нет:
Отправить комментарий