I’ve modified previous script to use Java’s XPath to extract RSS titles.
(import '(javax.xml.parsers DocumentBuilderFactory DocumentBuilder)
'(org.w3c.dom Document Node)
'(javax.xml.xpath XPathFactory XPath XPathExpression XPathConstants)
)
(let [domFactory (doto (. DocumentBuilderFactory newInstance) (setNamespaceAware true))
builder (. domFactory newDocumentBuilder)
doc (. builder parse "/Users/jgoamakf/hotnews.rss")
factory (. XPathFactory newInstance)
xpath (. factory newXPath)
expr (. xpath compile "//title/text()")
result (. expr evaluate doc (. XPathConstants NODESET))
]
(loop [index 0
len (. result getLength)]
(if (< index len)
(do
(println (. (. result item index) getNodeValue))
(recur (inc index) len)))
))