<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>23A</title>
	<atom:link href="http://blog.davidgraesser.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.davidgraesser.de</link>
	<description>code snippets and more...</description>
	<lastBuildDate>Mon, 12 Jul 2010 21:22:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>XSLT: XML zu CSV mit Kopfzeile</title>
		<link>http://blog.davidgraesser.de/2010/07/12/xslt-xml-zu-csv-mit-kopfzeile/</link>
		<comments>http://blog.davidgraesser.de/2010/07/12/xslt-xml-zu-csv-mit-kopfzeile/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 21:19:10 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=155</guid>
		<description><![CDATA[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: &#60;xsl:stylesheet version=&#8220;1.0&#8243; xmlns:xsl=&#8220;http://www.w3.org/1999/XSL/Transform&#8221;&#62; &#160;&#60;xsl utput omit-xml-declaration=&#8220;yes&#8221; method=&#8220;html&#8221; indent=&#8220;yes&#8221; encoding=&#8220;ISO-8859-1&#8243;/&#62; &#160; &#60;xsl:strip-space elements=&#8220;*&#8221; /&#62; &#60;!&#8211;Erstellung der Kopfzeile&#8211;&#62; &#60;xsl:template match=&#8220;/*/child::*&#8221;&#62; &#60;xsl:for-each select=&#8220;*[1]/child::*&#8221;&#62; &#60;xsl:if test=&#8220;position() != last()&#8221;&#62;&#34;&#60;xsl:value-of select=&#8220;name()&#8221;/&#62;&#34;;&#60;/xsl:if&#62; &#60;xsl:if test=&#8220;position()&#160; = last()&#8221;&#62;&#34;&#60;xsl:value-of select=&#8220;name()&#8221;/&#62;&#34;&#60;xsl:text&#62;&#38;#xD;&#60;/xsl:text&#62;&#60;/xsl:if&#62; &#60;/xsl:for-each&#62; &#60;xsl:apply-templates/&#62; &#60;/xsl:template&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>XSL:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:stylesheet <span class="re0">version</span>=<span class="st0">&#8220;1.0&#8243;</span> xmlns:<span class="re0">xsl</span>=<span class="st0">&#8220;http://www.w3.org/1999/XSL/Transform&#8221;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sc3"><span class="re1">&lt;xsl</span> <img src='http://blog.davidgraesser.de/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> utput <span class="re0">omit-xml-declaration</span>=<span class="st0">&#8220;yes&#8221;</span> <span class="re0">method</span>=<span class="st0">&#8220;html&#8221;</span> <span class="re0">indent</span>=<span class="st0">&#8220;yes&#8221;</span> <span class="re0">encoding</span>=<span class="st0">&#8220;ISO-8859-1&#8243;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:strip-space <span class="re0">elements</span>=<span class="st0">&#8220;*&#8221;</span> <span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="coMULTI">&lt;!&#8211;Erstellung der Kopfzeile&#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:template <span class="re0">match</span>=<span class="st0">&#8220;/*/child::*&#8221;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:for-each <span class="re0">select</span>=<span class="st0">&#8220;*[1]/child::*&#8221;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:if <span class="re0">test</span>=<span class="st0">&#8220;position() != last()&#8221;</span><span class="re2">&gt;</span></span>&quot;<span class="sc3"><span class="re1">&lt;xsl</span>:value-of <span class="re0">select</span>=<span class="st0">&#8220;name()&#8221;</span><span class="re2">/&gt;</span></span>&quot;;<span class="sc3"><span class="re1">&lt;/xsl</span>:if<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:if <span class="re0">test</span>=<span class="st0">&#8220;position()&nbsp; = last()&#8221;</span><span class="re2">&gt;</span></span>&quot;<span class="sc3"><span class="re1">&lt;xsl</span>:value-of <span class="re0">select</span>=<span class="st0">&#8220;name()&#8221;</span><span class="re2">/&gt;</span></span>&quot;<span class="sc3"><span class="re1">&lt;xsl</span>:text<span class="re2">&gt;</span></span><span class="sc1">&amp;#xD;</span><span class="sc3"><span class="re1">&lt;/xsl</span>:text<span class="re2">&gt;</span></span><span class="sc3"><span class="re1">&lt;/xsl</span>:if<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/xsl</span>:for-each<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:apply-templates<span class="re2">/&gt;</span></span> </div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/xsl</span>:template<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="coMULTI">&lt;!&#8211;Erstellung der Inhaltszeilen&#8211;&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:template <span class="re0">match</span>=<span class="st0">&#8220;/*/*/child::*&#8221;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:for-each <span class="re0">select</span>=<span class="st0">&#8220;child::*&#8221;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:if <span class="re0">test</span>=<span class="st0">&#8220;position() != last()&#8221;</span><span class="re2">&gt;</span></span>&quot;<span class="sc3"><span class="re1">&lt;xsl</span>:value-of <span class="re0">select</span>=<span class="st0">&#8220;normalize-space(.)&#8221;</span><span class="re2">/&gt;</span></span>&quot;;<span class="sc3"><span class="re1">&lt;/xsl</span>:if<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;xsl</span>:if <span class="re0">test</span>=<span class="st0">&#8220;position()&nbsp; = last()&#8221;</span><span class="re2">&gt;</span></span>&quot;<span class="sc3"><span class="re1">&lt;xsl</span>:value-of <span class="re0">select</span>=<span class="st0">&#8220;normalize-space(.)&#8221;</span><span class="re2">/&gt;</span></span>&quot;<span class="sc3"><span class="re1">&lt;xsl</span>:text<span class="re2">&gt;</span></span><span class="sc1">&amp;#xD;</span><span class="sc3"><span class="re1">&lt;/xsl</span>:text<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/xsl</span>:if<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/xsl</span>:for-each<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/xsl</span>:template<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/xsl</span>:stylesheet<span class="re2">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
<p>Beispiel-XML:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;</span>?xml <span class="re0">version</span>=<span class="st0">&#8220;1.0&#8243;</span> <span class="re0">encoding</span>=<span class="st0">&#8220;UTF-8&#8243;</span>?<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;DATA<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;LIST<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;PRODUKT<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;TYP<span class="re2">&gt;</span></span></span>AUTO<span class="sc3"><span class="re1">&lt;/TYP<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;BESCHREIBUNG<span class="re2">&gt;</span></span></span>VW<span class="sc3"><span class="re1">&lt;/BESCHREIBUNG<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/PRODUKT<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;PRODUKT<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;TYP<span class="re2">&gt;</span></span></span>AUTO<span class="sc3"><span class="re1">&lt;/TYP<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;BESCHREIBUNG<span class="re2">&gt;</span></span></span>DAIMLER<span class="sc3"><span class="re1">&lt;/BESCHREIBUNG<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/PRODUKT<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;PRODUKT<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;TYP<span class="re2">&gt;</span></span></span>AUTO<span class="sc3"><span class="re1">&lt;/TYP<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;BESCHREIBUNG<span class="re2">&gt;</span></span></span>OPEL<span class="sc3"><span class="re1">&lt;/BESCHREIBUNG<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/PRODUKT<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/LIST<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/DATA<span class="re2">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
<p>Als Tool zum testen der Transformation hat sich: <a href="http://www.wenzlaff.de/xmltocsv.html">TWXml2Csv</a> bewährt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/07/12/xslt-xml-zu-csv-mit-kopfzeile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sony HX5V &amp; GPS Assist Daten unter Mac OS X</title>
		<link>http://blog.davidgraesser.de/2010/05/24/sony-hx5v-gps-assist-daten-unter-mac-os-x/</link>
		<comments>http://blog.davidgraesser.de/2010/05/24/sony-hx5v-gps-assist-daten-unter-mac-os-x/#comments</comments>
		<pubDate>Mon, 24 May 2010 21:42:51 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[10.5]]></category>
		<category><![CDATA[10.6]]></category>
		<category><![CDATA[gps almanac]]></category>
		<category><![CDATA[gps Almanach]]></category>
		<category><![CDATA[gps assist]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[macox]]></category>
		<category><![CDATA[pmb]]></category>
		<category><![CDATA[sony hx5]]></category>
		<category><![CDATA[sony hx5 gps almanac Almanach pmb mac os x macox 10.5 10.6 gps assist]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=150</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.unbeatable.co.uk/images/uploaded_images/sonyHX5_13.jpg" alt="sony hx5" /><br />
Die Sony HX5 bietet einem die Möglichkeit die GPS-Koordinaten des aktuellen Standortes in die EXIF-Daten des Bildes zu schreiben.<br />
Leider benötigt das finden der GPS-Satelliten eine ganze Weile. Um dies zu beschleunigen können die <a href="http://www.quantenwelt.de/technik/GPS/almanach.html">aktuellen Koordinaten der Satelliten</a> in der Kamera hinterlegt werden. Für diesen Zweck liegt der Kamera das Tool <strong>PMB</strong> auf dem internen Speicher bei.<br />
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.</p>
<p>Im folgenden <a href="http://blog.brixandersen.dk/?p=153">Blog Artikel</a> ist beschrieben wie man die GPS-Assist-Daten manuell auf der Kamera hinterlegt:<br />
Zusammengefasst gesagt:<br />
1. <a href="http://control.d-imaging.sony.co.jp/GPS/assistme.dat">assistme.dat</a> herunterladen (Die Datei kommt direkt von Sony)<br />
2. Verzeichnis auf der Speicherkarte erstellen: Private/SONY/GPS (wobei der Ordner Private bereits existiert)<br />
3. Kamera starten und im Menü unter <strong>GPS-Assist-Daten</strong> prüfen ob da ein noch gültiges Gültigkeitsdatum anzeigt wird -Fertig</p>
<p>Um das ganze noch etwas geschmeidiger zu machen gibt ein kleines <a href="https://code.google.com/p/gpsassist-update/">Tool</a>, welches die ersten beiden Schritte übernimmt.<br />
Das heißt man muss nur noch die Kamera anschließen, die Ordner erstellen und das Tool erledigt den Rest.</p>
<p>Viel Spass beim GPS-Tracking.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/05/24/sony-hx5v-gps-assist-daten-unter-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>o2 Vertragsverlängerung</title>
		<link>http://blog.davidgraesser.de/2010/05/23/o2-vertragsverlangerung/</link>
		<comments>http://blog.davidgraesser.de/2010/05/23/o2-vertragsverlangerung/#comments</comments>
		<pubDate>Sun, 23 May 2010 09:52:26 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Fail]]></category>
		<category><![CDATA[o2 vertragsverlängerung online]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=146</guid>
		<description><![CDATA[aha!]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.davidgraesser.de/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-22-um-14.33.56.png" rel="lightbox[146]"><img src="http://blog.davidgraesser.de/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-22-um-14.33.56-150x35.png" alt="o2-Vertragsverlängerung" title="o2-Vertragsverlängerung" width="150" height="35" class="aligncenter size-thumbnail wp-image-145" /></a><br />
aha!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/05/23/o2-vertragsverlangerung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selenium &amp; TestNG</title>
		<link>http://blog.davidgraesser.de/2010/05/04/selenium-testng/</link>
		<comments>http://blog.davidgraesser.de/2010/05/04/selenium-testng/#comments</comments>
		<pubDate>Tue, 04 May 2010 14:45:58 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=134</guid>
		<description><![CDATA[Hier eine Liste mit Problemen die ich beim ersten Einsatz vom Selenium &#038; 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: &#60;?xml version=&#8220;1.0&#8243; encoding=&#8220;UTF-8&#8243;?&#62; &#60;suite name=&#8220;suiten&#8221; verbose=&#8220;10&#8243;&#62; &#160; &#160; &#160; &#160; &#60;suite-files&#62; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Hier eine Liste mit Problemen die ich beim ersten Einsatz vom Selenium &#038; TestNG hatte und keine direkte Problemlösung im Netz gefunden habe.</p>
<p><strong>Problem 1:</strong><br />
Man kann seine TestSuiten in mehrere SubSuiten unterteilen und über mehrere XML-Konfigurationen definieren.<br />
Bsp:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;</span>?xml <span class="re0">version</span>=<span class="st0">&#8220;1.0&#8243;</span> <span class="re0">encoding</span>=<span class="st0">&#8220;UTF-8&#8243;</span>?<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;suite</span> <span class="re0">name</span>=<span class="st0">&#8220;suiten&#8221;</span> <span class="re0">verbose</span>=<span class="st0">&#8220;10&#8243;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-file <span class="re0">path</span>=<span class="st0">&#8220;suiten/myTest1.xml&#8221;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-file <span class="re0">path</span>=<span class="st0">&#8220;suiten/myTest2.xml&#8221;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/suite<span class="re2">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
<p>Leider kommt es bei diesem Setup zu einer NullPointerException</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>TestNG<span class="br0">&#93;</span> Reporter org.<span class="me1">testng</span>.<span class="me1">reporters</span>.<span class="me1">XMLReporter</span>@be0e27 failed</div>
</li>
<li class="li1">
<div class="de1">java.<span class="me1">lang</span>.<a href="http://www.google.com/search?q=allinurl%3ANullPointerException+java.sun.com&#038;bntl=1"><span class="kw3">NullPointerException</span></a></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; at java.<span class="me1">util</span>.<a href="http://www.google.com/search?q=allinurl%3ACalendar+java.sun.com&#038;bntl=1"><span class="kw3">Calendar</span></a>.<span class="me1">setTime</span><span class="br0">&#40;</span>Unknown Source<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; at java.<span class="me1">text</span>.<a href="http://www.google.com/search?q=allinurl%3ASimpleDateFormat+java.sun.com&#038;bntl=1"><span class="kw3">SimpleDateFormat</span></a>.<span class="me1">format</span><span class="br0">&#40;</span>Unknown Source<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; at java.<span class="me1">text</span>.<a href="http://www.google.com/search?q=allinurl%3ASimpleDateFormat+java.sun.com&#038;bntl=1"><span class="kw3">SimpleDateFormat</span></a>.<span class="me1">format</span><span class="br0">&#40;</span>Unknown Source<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; at java.<span class="me1">text</span>.<a href="http://www.google.com/search?q=allinurl%3ADateFormat+java.sun.com&#038;bntl=1"><span class="kw3">DateFormat</span></a>.<span class="me1">format</span><span class="br0">&#40;</span>Unknown Source<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; at org.<span class="me1">testng</span>.<span class="me1">reporters</span>.<span class="me1">XMLReporter</span>.<span class="me1">addDurationAttributes</span><span class="br0">&#40;</span>XMLReporter.<span class="me1">java</span>:<span class="nu0">144</span><span class="br0">&#41;</span> </div>
</li>
</ol>
</div>
</div>
<p>Scheinbar verlangt TestNG das in jedem Suite-File mind. ein konkreter Test enthalten ist.<br />
Mit diesem Setup hats dann funktioniert:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;</span>?xml <span class="re0">version</span>=<span class="st0">&#8220;1.0&#8243;</span> <span class="re0">encoding</span>=<span class="st0">&#8220;UTF-8&#8243;</span>?<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;suite</span> <span class="re0">name</span>=<span class="st0">&#8220;suiten&#8221;</span> <span class="re0">verbose</span>=<span class="st0">&#8220;10&#8243;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-file <span class="re0">path</span>=<span class="st0">&#8220;suiten/myTest1.xml&#8221;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;suite</span>-file <span class="re0">path</span>=<span class="st0">&#8220;suiten/myTest2.xml&#8221;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/suite</span>-files<span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;test</span> <span class="re0">name</span>=<span class="st0">&#8220;StartStop&#8221;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;classes<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;class</span> <span class="re0">name</span>=<span class="st0">&#8220;de.test.java.FakeTest&#8221;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/classes<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/test<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/suite<span class="re2">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
<p><strong>Problem 2:</strong><br />
Um den kompletten Inhalt eines HTML-Elementes auszulesen gibt es folgende Möglichkeit:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&#038;bntl=1"><span class="kw3">String</span></a> tableContent = session<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getAttribute</span><span class="br0">&#40;</span><span class="st0">&#8220;//form[@id='test']/div/table&#8221;</span><span class="br0">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
<p>Dabei konnte allerdings der XPath durch die SingleQuotes nicht korrekt aufgelöst werden.</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1">ERROR: Invalid xpath: XPath parse error </div>
</li>
</ol>
</div>
</div>
<p>Mit getText hats dann geklappt:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&#038;bntl=1"><span class="kw3">String</span></a> tableContent = session<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getText</span><span class="br0">&#40;</span><span class="st0">&#8220;//form[@id='test']/div/table&#8221;</span><span class="br0">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
<p>Im String tableContent sind dann alle sichtbaren Inhalte der Tabelle, durch Whitespaces getrennt, enthalten.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/05/04/selenium-testng/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Link-Sammlung CSS 3</title>
		<link>http://blog.davidgraesser.de/2010/03/28/link-sammlung-css-3/</link>
		<comments>http://blog.davidgraesser.de/2010/03/28/link-sammlung-css-3/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 16:33:19 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[HTML | CSS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[gradient]]></category>
		<category><![CDATA[preview]]></category>
		<category><![CDATA[vorschau]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=131</guid>
		<description><![CDATA[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]]></description>
			<content:encoded><![CDATA[<p>hier mal eine liste von seiten, die sich bei der entwicklung mit css 3 als nützlich herrausgestellt haben:<br />
<a href="http://www.findmebyip.com/litmus/#target-selector">Übersicht der Browser-Unterstützung von CSS 3 Eigenschaften</a><br />
<a href="http://css3please.com/">CSS 3-Live Editor mit Cross-Browser-Regeln</a><br />
<a href="http://css3generator.com/">CCS 3-Editor mit Vorschau und Browser-Kompatibilität</a><br />
<a href="http://gradients.glrzad.com/">CSS 3 Gradient Code Generator</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/03/28/link-sammlung-css-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Talk und die Zwischenablage</title>
		<link>http://blog.davidgraesser.de/2010/02/03/google-talk-und-die-zwischenablage/</link>
		<comments>http://blog.davidgraesser.de/2010/02/03/google-talk-und-die-zwischenablage/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 12:52:43 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=129</guid>
		<description><![CDATA[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 &#8220;OK&#8221; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>Jedes mal wenn ich in Google Talk was kopieren möchte erscheint die Meldung:</p>
<blockquote><p>„Möchten Sie zulassen, dass Informationen aus der Zwischenablage in dieser<br />
Seite eingefügt werden“.
</p></blockquote>
<p>Diese muss man mit einem &#8220;OK&#8221; 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<br />
Internetoptionen -> Sicherheit<br />
und dort im Bereicht Sicherheitsstufe dieser Zone -> Stufe anpassen<br />
Dort muss man dann letztendlich im Punkt<br />
&#8220;Einfügeoperationen über ein Skript zulassen&#8221; -> Aktivieren wählen. (dies stand bei mir auf Eingabeaufforderung).</p>
<p>Anschließend kann man kopieren ohne die nervige Meldung.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/02/03/google-talk-und-die-zwischenablage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iCal Duplikate entfernen</title>
		<link>http://blog.davidgraesser.de/2009/11/02/ical-duplikate-entfernen/</link>
		<comments>http://blog.davidgraesser.de/2009/11/02/ical-duplikate-entfernen/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 20:46:37 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[duplicate]]></category>
		<category><![CDATA[duplikate]]></category>
		<category><![CDATA[ical]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=127</guid>
		<description><![CDATA[Um nach einem missglückten Sync-Versuch alle Duplikate zu löschen eignet sich das Tool iCal Dupe Deleter hervorragend.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.nhoj.co.uk/icaldupedeleter/icon.png" alt="icaldupedeleter" /><br />
Um nach einem missglückten Sync-Versuch alle Duplikate zu löschen eignet sich das Tool <a href="http://www.nhoj.co.uk/icaldupedeleter/">iCal Dupe Deleter</a> hervorragend.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2009/11/02/ical-duplikate-entfernen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Traktor 3 &amp; BCD 3000 unter Mac OSX</title>
		<link>http://blog.davidgraesser.de/2009/10/31/traktor-3-bcd-3000-auf-osx/</link>
		<comments>http://blog.davidgraesser.de/2009/10/31/traktor-3-bcd-3000-auf-osx/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 20:47:37 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[traktor3 bcd3000 bcd 3000 osx]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=122</guid>
		<description><![CDATA[Sollte man Probleme dabei haben das die Keysettings vom Behringer nicht richtig funktionieren hilft folgendes: unter dem Einstellungspunkt -> External Sync -> Midi Clock muss das Mischpult als Midi-Interface gewählt werden.]]></description>
			<content:encoded><![CDATA[<p>Sollte man Probleme dabei haben das die Keysettings vom Behringer nicht richtig funktionieren hilft folgendes:<br />
<img src="http://blog.davidgraesser.de/wp-content/uploads/2009/10/Bildschirmfoto-2009-10-31-um-21.44.17.png" alt="Midi Settings" title="Midi Settings" width="565" height="540" class="alignnone size-full wp-image-121" /></p>
<p>unter dem Einstellungspunkt -> External Sync -> Midi Clock muss das Mischpult als Midi-Interface gewählt werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2009/10/31/traktor-3-bcd-3000-auf-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>o2 Captcha Fail</title>
		<link>http://blog.davidgraesser.de/2009/09/06/o2-captcha-fail/</link>
		<comments>http://blog.davidgraesser.de/2009/09/06/o2-captcha-fail/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 20:57:13 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Fail]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=115</guid>
		<description><![CDATA[Hmm jetzt jeden Buchstaben doppelt oder doch nicht?]]></description>
			<content:encoded><![CDATA[<p>Hmm jetzt jeden Buchstaben doppelt oder doch nicht?<br />
<img src="http://blog.davidgraesser.de/wp-content/uploads/2009/09/bild-5.png" alt="bild-5" title="bild-5" width="574" height="280" class="alignnone size-full wp-image-116" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2009/09/06/o2-captcha-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rossmann Fail</title>
		<link>http://blog.davidgraesser.de/2009/09/06/rossmann-fail/</link>
		<comments>http://blog.davidgraesser.de/2009/09/06/rossmann-fail/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 20:52:59 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Fail]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=108</guid>
		<description><![CDATA[Screenshot aus der Bildbestell-Software von Rossmann. 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.]]></description>
			<content:encoded><![CDATA[<p>Screenshot aus der Bildbestell-Software von Rossmann.<br />
<img src="http://blog.davidgraesser.de/wp-content/uploads/2009/09/bild-3.png" alt="bild-3" title="bild-3" width="590" height="351" class="alignnone size-full wp-image-109" /><br />
Vermute mal folgenden Tathergang:</p>
<ul>
1. Kunde formuliert die Parameter einer Rossmann-Filiale, unter anderem hat jede Filiale einen Namen.<br />
2. Entwickler setzt die Anforderung um<br />
3. Kunde merkt das jede Filiale Rossmann heißt und gibt keinen Namen ein.</ul>
<p>Ergebnis: In der Filialauswahl steht für den Namen ein aussagekräftiges null.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2009/09/06/rossmann-fail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
