While playing around with the Java JDOM library, I found myself resorting to jython to experiment with the API. It’s just so much easier this way for me:

#!/usr/bin/env jython

from java.io import StringReader

from org.jdom import Document
from org.jdom.input import SAXBuilder
from org.jdom.xpath import XPath

xml = 'foobar'

builder = SAXBuilder()
document = builder.build(StringReader(xml))
xpath = XPath.newInstance('//foo/bar')
node = xpath.selectSingleNode(document)
print node.getText()

In case it’s of interest I’ve got a little jython startup script which automatically makes .jar files I drop in a particular directory available to the interpreter. So when testing jdom all i had to do was drop jdom.jar in my /usr/local/jython/jars and it’s immediately available the next time I start up jython.

#!/bin/bash

JYTHON_HOME=/usr/local/jython

for jar in $JYTHON_HOME/jars/*.jar
do
    jars="$jars:$jar"
done

CLASSPATH="$JYTHON_HOME/dist/jython.jar$jars"

java -cp $CLASSPATH \
    $JYTHON_JAVA_ARGS -Dpython.home=$JYTHON_HOME \
    org.python.util.jython "$@"

Pretty handy, especially for interactive sessions.