Seite auswählen

Autor: Kresnadi Budisantoso

XML-Datei parsen und XPath-Selektion erfolgreich

Wie verwende ich XPath in einem Java-Programm? Diese Frage stellte ich zunächst Tante Gurgel und fand den IBM-Artikel, den ich im vorigen Post bereits erwähnt hatte. Nach der Anleitung des IBM-Artikels habe ich zunächst ein neues Java-Projekt in Eclipse erstellt und im Projekt-Ordner eine Datei books.xml abgelegt, die folgenden Inhalt hat: <?xml version=”1.0″ encoding=”UTF-8″?> <inventory>   <book year=”2000″>     <title>Snow Crash</title>     <author>Neal Stephenson</author>     <publisher>Spectra</publisher>     <isbn>0553380958</isbn>     <price>14.95</price>   </book>     <book year=”2005″>     <title>Burning Tower</title>     <author>Larry Niven</author>     <author>Jerry Pournelle</author>     <publisher>Pocket</publisher>   <isbn>0743416910</isbn>     <price>5.99</price>   </book>     <book year=”1995″>     <title>Zodiac</title>     <author>Neal Stephenson</author>     <publisher>Spectra</publisher>     <isbn>0553573862</isbn>     <price>7.50</price>   </book>     <!– more books… –>   </inventory> Anschließend übernahm ich den Code aus Listing 4 in eine neu erstellte java-Datei (FirstTest.java): package de.budisantoso.da.test;   import java.io.IOException;   import javax.xml.parsers.*; import javax.xml.xpath.*;   import org.w3c.dom.*; import org.xml.sax.SAXException;   /** * @author adi * */ public class FirstTest {     /**   * @param args   * @throws ParserConfigurationException   * @throws IOException   * @throws SAXException   */   public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {     DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();     domFactory.setNamespaceAware(true); // never forget this!     DocumentBuilder builder = domFactory.newDocumentBuilder();     Document doc = builder.parse(“books.xml”);       XPathFactory xpFactory = XPathFactory.newInstance();     XPath xpath = xpFactory.newXPath();       try {       XPathExpression expr = xpath.compile(“//book /title/text()”);       Object result = expr.evaluate(doc, XPathConstants.NODESET);       NodeList nodes = (NodeList) result;       for (int i = 0; i < nodes.getLength(); i++) {         System.out.println(nodes.item(i).getNodeValue());       }     } catch (XPathExpressionException e) {       // TODO Auto-generated catch block       e.printStackTrace();     }   }...

Weiterlesen

Model-Transformation mittels Java und XPath?

Meine Idee für die programmatische Transformation aus dem Single-Underlying-Model (SUM) in eine View (z.B. Structural Specification) ist eine Kombination aus Java und XPath. Für die Rücktransformation habe ich mir bis dato aber noch keine Gedanken gemacht. Unter der Annahme, dass das SUM im XMI-Format gespeichert ist, könnte ich über XPath die Teile des XML-Baums filtern, die ich für die Transformation benötige. Dies kann dann per Java-Code weiterverarbeitet werden und daraus ein neues Model erzeugt werden, das dann wiederum in eine XMI-Datei serialisiert wird. http://www.eclipse.org/modeling/mdt/uml2/docs/articles/Getting_Started_with_UML2/article.html http://www.ibm.com/developerworks/library/x-javaxpathapi.html Ich werde diesen Ansatz testen, indem ich zunächst versuchen werde, aus einer XMI-Datei mit zwei Klassen eine zu selektieren und diese in die neue .uml-Datei zu schreiben. @Dietmar, Benjamin: Was haltet ihr...

Weiterlesen

Eclipse – Welches Package eignet sich für meine DA?

Heute habe ich mich dazu entschlossen für meine DA eine “neue” Eclipse-Installation zu verwenden. Auf der Downloadseite hatte ich dann die Qual der Wahl: Eclipse IDE for Java Developers Eclipse IDE for J2EE Developers Eclipse IDE for C/C++ Developers (kam natürlich nicht in Frage) Eclipse IDE for RCP/Plugin Developers Eclipse Modeling Tools (includes incubating components) Eclipse IDE for Java and Report Developers (schied ebenfalls spontan aus, da ich keine Report-Unterstützung benötige) Eclipse Classic 3.4.1   Für mich kamen schließlich die Eclipse IDE for RCP/Plugin Developers und die Eclipse Modeling Tools (includes incubating components) in die engere Auswahl. Zur Zeit läuft gerade der Download für die Eclipse Modeling Tools, die ich mir als erstes ansehen möchte. Ich denke für die ersten Schritte dürfte das die bessere Wahl sein. Fehlende Features könnte ich zu einem späteren Zeitpunkt auch...

Weiterlesen

CaseStudy für die DA – Szenario und Beschreibung

Für meine DA benötige ich eine Fallstudie, wozu mir ein fiktives, einfach strukturiertes Ticketing-System (aka Task-Tracking-System oder Help-Desk-System) dient, das ich hier beschreiben möchte: Szenario Ein Ticketing-System findet zum Beispiel im User-Support eines Software-Herstellers Anwendung. Grundsätzlich können zwei Benutzergruppen eines solchen Systems identifiziert werden. Auf der einen Seite die Benutzer der Software (= Kunden des Softwareunternehmens), die in diesem Szenario entweder Probleme bei der Bedienung oder Anforderungen bezüglich Customizing/Features haben. Auf der anderen Seite gibt es die Mitarbeiter des Softwareunternehmens, die sich um die Probleme und Anforderungen der Kunden kümmern. Beschreibung Auf der Kundenseite sieht die Interaktion mit dem System wie folgt aus: Ein Kunde erstellt eine Anfrage über eine nicht näher definierte Schnittstelle (eine solche Schnittstelle könnte zum Beispiel ein Mail-System oder eine Webapplikation sein) und erzeugt damit automatisch ein Ticket. Das System teilt dem Kunden dann über eine Nachricht (OutgoingMessage) seine Ticket-Nummer mit. Mit dieser Ticket-Nummer kann der Kunde dann zu einem späteren Zeitpunkt weitere Nachrichten (IncomingMessage) an das System schicken, die dann dem Ticket zugeordnet werden können. Auf der Seite des Softwareherstellers bedienen dann Mitarbeiter (=Benutzer) das System. Das System, das bei jeder Anfrage ein neues Ticket erzeugt, erzeugt zeitgleich eine initiale Aufgabe, die einem zuvor definierten Standard-Benutzer sowie dem erstellten Ticket zugeordnet wird. Diese initiale Aufgabe lautet in etwa “Anfrage bearbeiten”. Der Standard-Benutzer ist somit beauftragt, sich um die Anfrage zu kümmern. Anhand der Inhalts...

Weiterlesen

IE7 unter Linux – Wine und PlayOnLinux machens möglich

Auf PlayOnLinux bin ich aufmerksam geworden, als ich auf der Suche nach einer Anleitung und Erfahrungsberichten zum Internet Explorer unter Linux war und auf einen Beitrag auf telemat.de gestoßen bin. “Warum IE unter Linux?”, fragt sich jetzt vielleicht der ein oder andere. Ganz einfach: Chrome, Safari, Mozilla und Co. haben’s immer noch nicht geschafft den IE zu verdrängen und werden es wohl so schnell auch nicht. Und um meine erstellten Webseiten Cross-Browser-tauglich zu machen benötige ich unter anderem auch den IE zum testen. PlayOnLinux bietet jedoch nicht nur eine einfach Möglichkeit den Internet Explorer unter Linux zu installieren, sondern noch viele andere Installationsscripte für die verschiedensten Windows Programme. Wie der Name ja schon sagt, war das Tool ursprünglich dafür konzipiert, eine bequeme Möglichkeit zu schaffen, Spiele, die für Windows programmiert wurden, auch unter Linux+Wine zum Laufen zu bringen. Die Installation ist einfach: sudo aptitude install wine … im Terminal ausführen, falls noch kein Wine installiert wurde und dann die aktuelle Version des PlayOnLinux-Tools von der Website beziehen. (Am einfachsten ist es, die .deb-Datei herunterzuladen und zu installieren.) Danach kann man das Tool bequem über >Anwendungen >Spiele >PlayOnLinux starten (Ubuntu 8.10, Gnome). Unter >Installiere >Internet findet man dort den Eintrag für den Internet Explorer, neben ein paar weiteren Browsern. Auswählen, Anwenden, durch den Wizard klicken, fertig – das dachte ich zumindest… Aber Pustekuchen :( Bei der Installation des IE7 erhielt...

Weiterlesen