import javax.xml.transform.TransformerFactory;\r
import javax.xml.transform.dom.DOMSource;\r
import javax.xml.transform.stream.StreamResult;\r
+import javax.xml.transform.TransformerException;\r
+import javax.xml.transform.TransformerConfigurationException;\r
\r
import net.sf.json.JSONArray;\r
import net.sf.json.JSONObject;\r
return NAME;\r
}\r
\r
+ private String xmlToString(Document doc) {\r
+ try {\r
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();\r
+ StringWriter stw = new StringWriter(); \r
+ transformer.transform(new DOMSource(doc), new StreamResult(stw)); \r
+ return stw.toString();\r
+ } catch (TransformerConfigurationException e) {\r
+ logger.debug("Cannot convert XML Document to String, e");\r
+ return "";\r
+ } catch (TransformerException e) {\r
+ logger.debug("Cannot convert XML Document to String, e");\r
+ return "";\r
+ }\r
+ }\r
\r
private Document fetchXML(URL url) throws Exception {\r
Document xml = null;\r
boolean done = false;\r
+ logger.debug("Fetching XML from URL "+url);\r
for (int count = 0; !done; count++) {\r
Thread.sleep(config.niceMilliseconds*(1<<count));\r
try {\r
.newDocumentBuilder().parse(url.openStream());\r
done = true;\r
} catch (Exception e) {\r
- if (!config.quiet) {\r
- logger.warn("Error fetching from url " + url + ", count="\r
- + count);\r
- }\r
- if (count >= MAX_FETCH_TRIES) {\r
- stats.fetchErrors++;\r
- logger.debug("Error getting data from url", e);\r
- throw new Exception("Error getting data from url "\r
- + url, e);\r
- }\r
+ if (!config.quiet) {\r
+ logger.warn("Error fetching from url " + url + ", count="\r
+ + count);\r
+ }\r
+ if (count >= MAX_FETCH_TRIES) {\r
+ stats.fetchErrors++;\r
+ logger.debug("Error getting data from url", e);\r
+ throw new Exception("Error getting data from url "\r
+ + url, e);\r
+ }\r
}\r
}\r
+ logger.debug(xmlToString(xml));\r
return xml;\r
}\r
\r
if (!n.getNodeName().equals("uitzending_data_item")) {\r
logger.warn("Ignoring RTL detail, tag " + n.getNodeName()\r
+ ", full xml:");\r
- Transformer t = TransformerFactory.newInstance()\r
- .newTransformer();\r
- StringWriter writer = new StringWriter();\r
- StreamResult result = new StreamResult(writer);\r
- t.transform(new DOMSource(xml), result);\r
- logger.debug(writer.toString());\r
+ logger.debug(xmlToString(xml));\r
continue;\r
}\r
// we have a uitzending_data_item node\r
}\r
handleNode(prog, dateStatus, descStatus, subnodes.item(j));\r
} catch (RTLException e) {\r
- Transformer t = TransformerFactory.newInstance()\r
- .newTransformer();\r
- StringWriter writer = new StringWriter();\r
- StreamResult result2 = new StreamResult(writer);\r
- t.transform(new DOMSource(xml), result2);\r
- logger.debug(writer.toString(), e);\r
+ logger.debug(xmlToString(xml), e);\r
continue;\r
}\r
}\r