<?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>Tue, 08 Nov 2011 21:14:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Benutzerfreundlichkeit beim Web-FrontEnd der Lufthansa</title>
		<link>http://blog.davidgraesser.de/2011/04/06/benutzerfreundlichkeit-beim-web-frontend-der-lufthansa/</link>
		<comments>http://blog.davidgraesser.de/2011/04/06/benutzerfreundlichkeit-beim-web-frontend-der-lufthansa/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 21:24:08 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Fail]]></category>
		<category><![CDATA[Netz]]></category>
		<category><![CDATA[I18N Fail]]></category>
		<category><![CDATA[internationalisierung]]></category>
		<category><![CDATA[lufthansa]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[webfrontend]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=230</guid>
		<description><![CDATA[Wenn man bei der Lufthansa (via SwissAir) sein Online-CheckIn absolvieren möchte erscheint folgende einladene Eingabemaske: Was passiert wohl wenn man vergisst den Haken beim untersten Formularpunkt zu setzen. Man bekommt folgendes aussagekräftige Meldung: Setzt man den Haken und schickt das Formular erneut ab, kommt die nächste prächtige Meldung: Zum Glück wurde die Boardkarte dann trotz [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn man bei der Lufthansa (via SwissAir) sein Online-CheckIn absolvieren möchte erscheint folgende einladene Eingabemaske:<br />
<a href="http://blog.davidgraesser.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-06-um-21.04.34.png" rel="lightbox[230]"><img src="http://blog.davidgraesser.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-06-um-21.04.34-150x150.png" alt="Lufthansa Online-CheckIn" title="Lufthansa Online-CheckIn" width="150" height="150" class="aligncenter size-thumbnail wp-image-231" /></a><br />
Was passiert wohl wenn man vergisst den Haken beim untersten Formularpunkt zu setzen. Man bekommt folgendes aussagekräftige Meldung:<br />
<a href="http://blog.davidgraesser.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-06-um-21.04.05.png" rel="lightbox[230]"><img src="http://blog.davidgraesser.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-06-um-21.04.05-150x150.png" alt="Lufthansa Fehlermeldung 1" title="Lufthansa Fehlermeldung 1" width="150" height="150" class="aligncenter size-thumbnail wp-image-232" /></a><br />
Setzt man den Haken und schickt das Formular erneut ab, kommt die nächste prächtige Meldung:<br />
<a href="http://blog.davidgraesser.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-06-um-21.04.53.png" rel="lightbox[230]"><img src="http://blog.davidgraesser.de/wp-content/uploads/2011/04/Bildschirmfoto-2011-04-06-um-21.04.53-150x150.png" alt="Lufthansa Fehlermeldung 2" title="Lufthansa Fehlermeldung 2" width="150" height="150" class="aligncenter size-thumbnail wp-image-233" /></a><br />
Zum Glück wurde die Boardkarte dann trotz der Meldung doch via Mail verschickt, allerdings nur eine. Um die Boardkarten für die weiteren Passagiere zu bekommen sind weitere Schritte nötig aber das würde den Artikel sprengen&#8230;Ein Hoch auf die gelungene Software-Lokalisierung.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2011/04/06/benutzerfreundlichkeit-beim-web-frontend-der-lufthansa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resizing iFrame</title>
		<link>http://blog.davidgraesser.de/2011/04/05/resizing-iframe/</link>
		<comments>http://blog.davidgraesser.de/2011/04/05/resizing-iframe/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 14:27:21 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[HTML | CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[automatic resizing]]></category>
		<category><![CDATA[height=100%]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[max-height]]></category>
		<category><![CDATA[resizing]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=221</guid>
		<description><![CDATA[Folgende Funktion passt ein iFrame immer an die Größe der umliegenden Seite an: &#60;script type=&#8220;text/javascript&#8221;&#62; window.onresize = function&#40;&#41;&#123;autoIframe&#40;&#8220;myIFrame&#8221;&#41;&#125;; &#160; function autoIframe&#40;frameId&#41; &#123; &#160; &#160;try&#123; &#160; &#160; &#160; &#160; frame = document.getElementById&#40;frameId&#41;; &#160; &#160; &#160; &#160; var realHeight = document.documentElement.clientHeight; &#160; &#160; &#160; &#160; frame.style.height = realHeight + &#8216;px&#8217;; &#160; &#160;&#125; &#160; &#160;catch&#40;err&#41;&#123; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Folgende Funktion passt ein iFrame immer an die Größe der umliegenden Seite an:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1">&lt;script type=<span class="st0">&#8220;text/javascript&#8221;</span>&gt; </div>
</li>
<li class="li1">
<div class="de1">window.<span class="kw3">onresize</span> = <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>autoIframe<span class="br0">&#40;</span><span class="st0">&#8220;myIFrame&#8221;</span><span class="br0">&#41;</span><span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> autoIframe<span class="br0">&#40;</span>frameId<span class="br0">&#41;</span> <span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">try</span><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; frame = document.<span class="me1">getElementById</span><span class="br0">&#40;</span>frameId<span class="br0">&#41;</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> realHeight = document.<span class="me1">documentElement</span>.<span class="me1">clientHeight</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; frame.<span class="me1">style</span>.<span class="me1">height</span> = realHeight + <span class="st0">&#8216;px&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">catch</span><span class="br0">&#40;</span>err<span class="br0">&#41;</span><span class="br0">&#123;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; window.<span class="kw3">status</span> = err.<span class="me1">message</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt; </div>
</li>
</ol>
</div>
</div>
<p>Funktioniert im IE6/8, Firefox 3/4</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2011/04/05/resizing-iframe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Größe einer Liste in einer JSP darstellen</title>
		<link>http://blog.davidgraesser.de/2011/01/06/grose-einer-liste-in-einer-jsp-darstellen/</link>
		<comments>http://blog.davidgraesser.de/2011/01/06/grose-einer-liste-in-einer-jsp-darstellen/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 09:42:35 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[arraylist]]></category>
		<category><![CDATA[core jstl]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java.lang.String]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[size]]></category>
		<category><![CDATA[The "." operator was supplied]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=204</guid>
		<description><![CDATA[Wieder mal ein klassisches, simples Problem. In einer JSP kann man nicht auf die Methode size() einer java.util.List zugreifen, das die JSTL mit dem Aufruf &#60;c:out value=&#8220;${list.size}&#8221;/&#62; einen Getter erwartet und folgende Fehlermeldung produziert: The &#8220;.&#8221; operator was supplied with an index value of type &#8220;java.lang.String&#8221; to be applied to a List or array&#8230; Die [...]]]></description>
			<content:encoded><![CDATA[<p>Wieder mal ein klassisches, simples Problem. In einer JSP kann man nicht auf die Methode size() einer java.util.List zugreifen, das die JSTL mit dem Aufruf </p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="sc2">&lt;c:out <span class="kw3">value</span>=<span class="st0">&#8220;${list.size}&#8221;</span>/<span class="kw2">&gt;</span></a></span> </div>
</li>
</ol>
</div>
</div>
<p> einen Getter erwartet und folgende Fehlermeldung produziert:</p>
<blockquote><p>
The &#8220;.&#8221; operator was supplied with an index value of type &#8220;java.lang.String&#8221; to be applied to a List or array&#8230;
</p></blockquote>
<p>Die Erstellung einer einfachen Wrapperklasse behebt dieses Problem:</p>
<div class="codesnip-container" >
<div class="codesnip">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> ListWrapper <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">private</span> <a href="http://www.google.com/search?q=allinurl%3AList+java.sun.com&#038;bntl=1"><span class="kw3">List</span></a> list;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> ListWrapper<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">this</span>.<span class="me1">list</span> = <span class="kw2">new</span> <a href="http://www.google.com/search?q=allinurl%3AArrayList+java.sun.com&#038;bntl=1"><span class="kw3">ArrayList</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">int</span> getSize<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> list.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">public</span> <a href="http://www.google.com/search?q=allinurl%3AList+java.sun.com&#038;bntl=1"><span class="kw3">List</span></a> getList<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> list;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span> </div>
</li>
</ol>
</div>
</div>
<p>Die Idee zur Lösung habe ich Buch Core JSTL von David M. Geary gefunden.</p>
<p><a href="http://books.google.de/books?id=ktbRmbLGseoC&#038;lpg=PT107&#038;ots=dzMD8nBtky&#038;dq=The%20%22.%22%20operator%20was%20supplied%20with%20an%20index%20value%20of%20type%20%22java.lang.String%22%20to%20be%20applied%20to%20a%20List%20or%20array&#038;pg=PT107#v=onepage&#038;q=The%20%22.%22%20operator%20was%20supplied%20with%20an%20index%20value%20of%20type%20%22java.lang.String%22%20to%20be%20applied%20to%20a%20List%20or%20array&#038;f=false">Quelle</a></p>
<p>Sollte man functions-Bibliothek &#8220;fn&#8221; nutzen, kann man natürlich die Funktion<br />
<em>fn:length</em> verwenden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2011/01/06/grose-einer-liste-in-einer-jsp-darstellen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fotos vom DC Super Heroes: The Ultimate Pop-Up Book</title>
		<link>http://blog.davidgraesser.de/2010/12/05/dc-super-heroes-the-ultimate-pop-up-book/</link>
		<comments>http://blog.davidgraesser.de/2010/12/05/dc-super-heroes-the-ultimate-pop-up-book/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 18:42:46 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[DC Comics]]></category>
		<category><![CDATA[Pop-Up Buch]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=192</guid>
		<description><![CDATA[Das Pop-Up Buch von DC-Comics ist aufwendig gestaltet. Vor allem die letzte Seite und die Batman-Seite mit leuchtendem Batsymbol sind sehr beeindruckend. Um einen besseren Eindruck zu bekommen habe ich ein paar Fotos vom Buch gemacht: Zur Picasa-Gallerie Pop-Up Buch bei Amazon Infos zum Buch auf nerdcore]]></description>
			<content:encoded><![CDATA[<p>Das Pop-Up Buch von DC-Comics ist aufwendig gestaltet. Vor allem die letzte Seite und die Batman-Seite mit leuchtendem Batsymbol sind sehr beeindruckend.<br />
Um einen besseren Eindruck zu bekommen habe ich ein paar Fotos vom Buch gemacht:<br />
<embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="400" height="267" flashvars="host=picasaweb.google.com&#038;captions=1&#038;hl=de&#038;feat=flashalbum&#038;RGB=0x000000&#038;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2FDaveBerlinCity%2Falbumid%2F5547262962667898737%3Falt%3Drss%26kind%3Dphoto%26hl%3Dde" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<p><a href="http://picasaweb.google.com/DaveBerlinCity/DCSuperHeroesTheUltimatePopUpBook#">Zur Picasa-Gallerie</a><br />
<a href="http://www.amazon.de/DC-Super-Heroes-Ultimate-Pop-Up/dp/0316122378/ref=sr_1_2?ie=UTF8&#038;s=books-intl-de&#038;qid=1291572767&#038;sr=8-2">Pop-Up Buch bei Amazon</a><br />
<a href="http://www.nerdcore.de/wp/2010/11/08/dc-comics-superhero-popup-book/">Infos zum Buch auf nerdcore</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/12/05/dc-super-heroes-the-ultimate-pop-up-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Login-Probleme bei S-Banking (Android)</title>
		<link>http://blog.davidgraesser.de/2010/11/30/login-probleme-bei-s-banking-android/</link>
		<comments>http://blog.davidgraesser.de/2010/11/30/login-probleme-bei-s-banking-android/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 21:22:15 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[berliner sparkasse]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[problem]]></category>
		<category><![CDATA[s-banking]]></category>

		<guid isPermaLink="false">http://blog.davidgraesser.de/?p=185</guid>
		<description><![CDATA[Das Tool S-Banking von Star Finanz bietet einem die Möglichkeit via Android seine Konto-Stände u.a. bei der Berliner Sparkasse abzurufen. Ich bin leider schon beim Login gescheitert. Eine Liste von 4 Fehlermeldungen erscheinte unter anderem: &#8220;PIN ungültig&#8221; &#038; &#8220;Verarbeitung nicht möglich&#8221;. Nach langem suchen und verzweifeltem Testen habe ich dann in der FAQ folgenden Eintrag [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://fs01.androidpit.info/aico/x47/117147.png" alt="s-banking-logo" /><br />
Das Tool <a href="http://www.androidpit.de/de/android/tests/test/391259/S-Banking-Bank-fuer-die-Hosentasche">S-Banking</a> von Star Finanz bietet einem die Möglichkeit via Android seine Konto-Stände u.a. bei der Berliner Sparkasse abzurufen.<br />
Ich bin leider schon beim Login gescheitert. Eine Liste von 4 Fehlermeldungen erscheinte unter anderem: &#8220;PIN ungültig&#8221; &#038; &#8220;Verarbeitung nicht möglich&#8221;.</p>
<p>Nach langem suchen und verzweifeltem Testen habe ich dann in der <a href="http://www.starmobi.de/index.php?id=faqlist">FAQ</a> folgenden Eintrag gefunden:</p>
<blockquote><p>Auch wenn sich die PIN im Online-Banking mit mehr als 5 Stellen eingeben lässt, kann lediglich eine 5-stellige PIN vom HBCI PIN/TAN Server der Sparkasse verarbeitet werden. Die Länge des Eingabefeldes ist deshalb auch im Online-Banking auf die ersten 5 Stellen begrenzt, bzw. werden bei einigen Instituten (bspw. Berliner Sparkasse) die nachfolgenden Zeichen abgeschnitten. Da unsere mobilen Applikationen für die Kommunikation mit der Sparkasse das HBCI PIN/TAN Verfahren nutzen, verwenden Sie bitte auch nur die ersten 5 Stellen Ihrer PIN für die Kontoeinrichtung und –aktualisierung. </p></blockquote>
<p>Das heißt sollte man ein Password/PIN verwenden, welches aus mehr als <strong>5</strong> Zeichen besteht scheitert man bereits am Login. Tippt man aber von seinem Password nur die ersten 5 Buchstaben ein &#8211; klappt es. amazing und so intuitiv!</p>
<p>Evt. könnte sich ja auch Star Finanz mal dazu durchringen ihre Fehlermeldung dahingehend anzupassen oder zumindestens an dieser Stelle auf den Eintrag in den FAQ hinzuweisen. Noch besser wäre es vielleicht von Anfang an die Eingabe von mehr als 5 Zeichen zu unterbinden&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.davidgraesser.de/2010/11/30/login-probleme-bei-s-banking-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
<p>Links zum Thema:<br />
<a href="http://amolip.de/Scripts/CopyingWithXslt/Description_CopyingWithXslt.html">Kopieren mit XSLT</a></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>10</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 CSS 3 Border Radius 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><br />
<a href="http://border-radius.com/">CSS 3 Border Radius 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>
	</channel>
</rss>

