{
  "classLoaderSharing" : "workflow",
  "script" : "import org.dom4j.Document;\nimport org.dom4j.Node;\nimport org.dom4j.io.SAXReader;\n\nSAXReader reader = new SAXReader(false);\nreader.setIncludeInternalDTDDeclarations(false);\nreader.setIncludeExternalDTDDeclarations(false);\n\nDocument document = reader.read(new StringReader(xmltext));\nList nodelist = document.selectNodes(xpath);\n\n// Process the elements in the nodelist\nArrayList outputList = new ArrayList();\nArrayList outputXmlList = new ArrayList();\n\nString val = null;\nString xmlVal = null;\nfor (Iterator iter = nodelist.iterator(); iter.hasNext();) {\n\tNode element = (Node) iter.next();\n\txmlVal = element.asXML();\n\tval = element.getStringValue();\n\tif (val != null && !val.equals(\"\")) {\n\t\toutputList.add(val);\n\t\toutputXmlList.add(xmlVal);\n\t}\n\n}\n\nList nodelist=outputList;\nList nodelistAsXML=outputXmlList;",
  "localworkerName" : "net.sourceforge.taverna.scuflworkers.xml.XPathTextWorker",
  "inputPorts" : [ {
    "name" : "xpath",
    "depth" : 0,
    "type" : "String"
  }, {
    "name" : "xml-text",
    "depth" : 0,
    "type" : "String"
  } ],
  "outputPorts" : [ {
    "name" : "nodelist",
    "depth" : 1,
    "granularDepth" : 1
  }, {
    "name" : "nodelistAsXML",
    "depth" : 1,
    "granularDepth" : 1
  } ],
  "isAltered" : false
}