Main Contents

XSLT: XML zu CSV mit Kopfzeile

Juli 12, 2010

Folgendes XSLT-Transformation generiert eine CSV-Datei, wobei die XML-Tag-Namen als Kopfzeile ausgegeben werden. Die Tag-Namen müssen für diese Transformation nicht bekannt sein.

XSL:

  1. <xsl:stylesheet version=“1.0″ xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”>
  2.  <xsl :o utput omit-xml-declaration=“yes” method=“html” indent=“yes” encoding=“ISO-8859-1″/>
  3.  
  4. <xsl:strip-space elements=“*” />
  5. <!–Erstellung der Kopfzeile–>
  6. <xsl:template match=“/*/child::*”>
  7. <xsl:for-each select=“*[1]/child::*”>
  8. <xsl:if test=“position() != last()”>"<xsl:value-of select=“name()”/>";</xsl:if>
  9. <xsl:if test=“position()  = last()”>"<xsl:value-of select=“name()”/>"<xsl:text>&#xD;</xsl:text></xsl:if>
  10. </xsl:for-each>
  11. <xsl:apply-templates/>
  12. </xsl:template>
  13.  
  14. <!–Erstellung der Inhaltszeilen–>
  15. <xsl:template match=“/*/*/child::*”>
  16. <xsl:for-each select=“child::*”>
  17. <xsl:if test=“position() != last()”>"<xsl:value-of select=“normalize-space(.)”/>";</xsl:if>
  18. <xsl:if test=“position()  = last()”>"<xsl:value-of select=“normalize-space(.)”/>"<xsl:text>&#xD;</xsl:text>
  19. </xsl:if>
  20. </xsl:for-each>
  21.  
  22. </xsl:template>
  23. </xsl:stylesheet>

Beispiel-XML:

  1. <?xml version=“1.0″ encoding=“UTF-8″?>
  2. <DATA>
  3. <LIST>
  4. <PRODUKT>
  5.         <TYP>AUTO</TYP>
  6.         <BESCHREIBUNG>VW</BESCHREIBUNG>
  7. </PRODUKT>
  8. <PRODUKT>
  9.         <TYP>AUTO</TYP>
  10.         <BESCHREIBUNG>DAIMLER</BESCHREIBUNG>
  11. </PRODUKT>
  12. <PRODUKT>
  13.         <TYP>AUTO</TYP>
  14.         <BESCHREIBUNG>OPEL</BESCHREIBUNG>
  15. </PRODUKT>
  16. </LIST>
  17. </DATA>

Als Tool zum testen der Transformation hat sich: TWXml2Csv bewährt.

Filed under: Coding | Comments (0)

Sony HX5V & GPS Assist Daten unter Mac OS X

Mai 24, 2010

sony hx5
Die Sony HX5 bietet einem die Möglichkeit die GPS-Koordinaten des aktuellen Standortes in die EXIF-Daten des Bildes zu schreiben.
Leider benötigt das finden der GPS-Satelliten eine ganze Weile. Um dies zu beschleunigen können die aktuellen Koordinaten der Satelliten in der Kamera hinterlegt werden. Für diesen Zweck liegt der Kamera das Tool PMB auf dem internen Speicher bei.
Unter Mac OS X fehlt diesem Tool leider diese Funktion. Da diese GPS-Informationen nur eine Halbwertszeit von 180 Tagen haben, muss man das Prozedere relativ häufig machen.

Im folgenden Blog Artikel ist beschrieben wie man die GPS-Assist-Daten manuell auf der Kamera hinterlegt:
Zusammengefasst gesagt:
1. assistme.dat herunterladen (Die Datei kommt direkt von Sony)
2. Verzeichnis auf der Speicherkarte erstellen: Private/SONY/GPS (wobei der Ordner Private bereits existiert)
3. Kamera starten und im Menü unter GPS-Assist-Daten prüfen ob da ein noch gültiges Gültigkeitsdatum anzeigt wird -Fertig

Um das ganze noch etwas geschmeidiger zu machen gibt ein kleines Tool, welches die ersten beiden Schritte übernimmt.
Das heißt man muss nur noch die Kamera anschließen, die Ordner erstellen und das Tool erledigt den Rest.

Viel Spass beim GPS-Tracking.

Filed under: Mac | Comments (2)

o2 Vertragsverlängerung

Mai 23, 2010

o2-Vertragsverlängerung
aha!

Filed under: Fail | Comments (0)

Selenium & TestNG

Mai 4, 2010

Hier eine Liste mit Problemen die ich beim ersten Einsatz vom Selenium & TestNG hatte und keine direkte Problemlösung im Netz gefunden habe.

Problem 1:
Man kann seine TestSuiten in mehrere SubSuiten unterteilen und über mehrere XML-Konfigurationen definieren.
Bsp:

  1. <?xml version=“1.0″ encoding=“UTF-8″?>
  2. <suite name=“suiten” verbose=“10″>
  3.         <suite-files>
  4.                 <suite-file path=“suiten/myTest1.xml”/>
  5.         </suite-files>
  6.         <suite-files>
  7.                 <suite-file path=“suiten/myTest2.xml”/>
  8.         </suite-files>
  9. </suite>

Leider kommt es bei diesem Setup zu einer NullPointerException

  1. [TestNG] Reporter org.testng.reporters.XMLReporter@be0e27 failed
  2.         at java.util.Calendar.setTime(Unknown Source)
  3.         at java.text.SimpleDateFormat.format(Unknown Source)
  4.         at java.text.SimpleDateFormat.format(Unknown Source)
  5.         at java.text.DateFormat.format(Unknown Source)
  6.         at org.testng.reporters.XMLReporter.addDurationAttributes(XMLReporter.java:144)

Scheinbar verlangt TestNG das in jedem Suite-File mind. ein konkreter Test enthalten ist.
Mit diesem Setup hats dann funktioniert:

  1. <?xml version=“1.0″ encoding=“UTF-8″?>
  2. <suite name=“suiten” verbose=“10″>
  3.         <suite-files>
  4.                 <suite-file path=“suiten/myTest1.xml”/>
  5.         </suite-files>
  6.         <suite-files>
  7.                 <suite-file path=“suiten/myTest2.xml”/>
  8.         </suite-files>
  9.         <test name=“StartStop”>
  10.                 <classes>
  11.                         <class name=“de.test.java.FakeTest”/>
  12.                 </classes>
  13.         </test>
  14. </suite>

Problem 2:
Um den kompletten Inhalt eines HTML-Elementes auszulesen gibt es folgende Möglichkeit:

  1. String tableContent = session().getAttribute(“//form[@id='test']/div/table”);

Dabei konnte allerdings der XPath durch die SingleQuotes nicht korrekt aufgelöst werden.

  1. ERROR: Invalid xpath: XPath parse error

Mit getText hats dann geklappt:

  1. String tableContent = session().getText(“//form[@id='test']/div/table”);

Im String tableContent sind dann alle sichtbaren Inhalte der Tabelle, durch Whitespaces getrennt, enthalten.

Filed under: Coding, Java | Comments (2)

Link-Sammlung CSS 3

März 28, 2010

hier mal eine liste von seiten, die sich bei der entwicklung mit css 3 als nützlich herrausgestellt haben:
Übersicht der Browser-Unterstützung von CSS 3 Eigenschaften
CSS 3-Live Editor mit Cross-Browser-Regeln
CCS 3-Editor mit Vorschau und Browser-Kompatibilität
CSS 3 Gradient Code Generator

Filed under: HTML | CSS | Comments (0)

Google Talk und die Zwischenablage

Februar 3, 2010

Jedes mal wenn ich in Google Talk was kopieren möchte erscheint die Meldung:

„Möchten Sie zulassen, dass Informationen aus der Zwischenablage in dieser
Seite eingefügt werden“.

Diese muss man mit einem “OK” bestätigen. Dies stört natürlich beim arbeiten, um diese Info los zu werden muss man im IE (bei mir der 6er) im Menüpunkt
Internetoptionen -> Sicherheit
und dort im Bereicht Sicherheitsstufe dieser Zone -> Stufe anpassen
Dort muss man dann letztendlich im Punkt
“Einfügeoperationen über ein Skript zulassen” -> Aktivieren wählen. (dies stand bei mir auf Eingabeaufforderung).

Anschließend kann man kopieren ohne die nervige Meldung.

Filed under: Tools | Comments (0)

iCal Duplikate entfernen

November 2, 2009

icaldupedeleter
Um nach einem missglückten Sync-Versuch alle Duplikate zu löschen eignet sich das Tool iCal Dupe Deleter hervorragend.

Filed under: Mac | Comments (0)

Traktor 3 & BCD 3000 unter Mac OSX

Oktober 31, 2009

Sollte man Probleme dabei haben das die Keysettings vom Behringer nicht richtig funktionieren hilft folgendes:
Midi Settings

unter dem Einstellungspunkt -> External Sync -> Midi Clock muss das Mischpult als Midi-Interface gewählt werden.

Filed under: Mac | Comments (0)

o2 Captcha Fail

September 6, 2009

Hmm jetzt jeden Buchstaben doppelt oder doch nicht?
bild-5

Filed under: Fail | Comments (0)

Rossmann Fail

September 6, 2009

Screenshot aus der Bildbestell-Software von Rossmann.
bild-3
Vermute mal folgenden Tathergang:

    1. Kunde formuliert die Parameter einer Rossmann-Filiale, unter anderem hat jede Filiale einen Namen.
    2. Entwickler setzt die Anforderung um
    3. Kunde merkt das jede Filiale Rossmann heißt und gibt keinen Namen ein.

Ergebnis: In der Filialauswahl steht für den Namen ein aussagekräftiges null.

Filed under: Fail | Comments (0)