diff options
Diffstat (limited to 'examples/TranslateXML.java')
-rw-r--r-- | examples/TranslateXML.java | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/examples/TranslateXML.java b/examples/TranslateXML.java index b7ec8fb..9dc3283 100644 --- a/examples/TranslateXML.java +++ b/examples/TranslateXML.java @@ -8,6 +8,8 @@ * this program is LGPL ... etc etc * * New: + * 1.2.12 + * leaving NanoXML in favor to the full featured xpath etc... * 1.2.6 * get compatible with new Ivy version * 1.2.3 @@ -16,10 +18,14 @@ * */ import fr.dgac.ivy.* ; +import gnu.getopt.Getopt; import java.io.* ; -import net.n3.nanoxml.*; import java.util.*; -import gnu.getopt.Getopt; +import javax.xml.parsers.*; +import javax.xml.xpath.*; +import org.xml.sax.*; +import org.w3c.dom.*; + class TranslateXML { @@ -42,19 +48,16 @@ class TranslateXML { private void parseFile(String filename) { try { - IXMLParser parser = XMLParserFactory.createDefaultXMLParser(); - IXMLReader reader = StdXMLReader.fileReader(filename); - parser.setReader(reader); - IXMLElement xml = (IXMLElement) parser.parse(); - // checks if everything is OK - // XMLWriter writer = new XMLWriter(System.out); - // writer.write(xml); - Vector translations = xml.getChildrenNamed("translate"); - for (int i=0;i<translations.size();i++) { - IXMLElement trans = (IXMLElement)translations.elementAt(i); - String from = trans.getAttribute("from",null); - String to = trans.getAttribute("to",null); - if ((from!=null)&&(to!=null)) { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document trans = builder.parse(new File(filename)); + XPath xpath = XPathFactory.newInstance().newXPath(); + NodeList list = (NodeList)xpath.evaluate("/translations/translate",trans,XPathConstants.NODESET); + for (int i=0;i<list.getLength();i++) { + NamedNodeMap nnm = list.item(i).getAttributes(); + String from = nnm.getNamedItem("from").getNodeValue(); + String to = nnm.getNamedItem("to").getNodeValue(); + if ((from!=null)&&(to!=null)&&(!from.equals(to))) { System.out.println("translating every \""+from+"\" in \""+to+"\""); bus.bindMsg(from,new TALK(to)); } |