Überprüfen, ob ein Knoten einer XML existiert mit XSL und xsl:if oder xsl:when

 

Bevor ichs wieder vergesse, muss ich es kurz festhalten: Wer testen möchte, ob in seinem XML – Dokument ein Knoten existiert, braucht keine komplizierte Anweisung (so wie ich es grad ewig versucht habe … mit string-length() oder count() – Anweisungen …). Es geht ganz einfach so: 

<xsl:choose>
<!-- gibt TRUE zurück, wenn Knoten vorhanden -->
 	<xsl:when test="knoten"> 
 <!-- liefert Inhalt des Knoten -->
 		<xsl:value -of select="knoten"> 
	</xsl:value></xsl:when>
	<!-- wenn FALSE, ist kein Knoten vorhanden -->
<xsl:otherwise>Knoten nicht vorhanden</xsl:otherwise> 
</xsl:choose>

oder aber so:

<xsl:if test="knoten">Knoten ist vorhanden, mach etwas ... </xsl:if>

Wer hätte das gedacht, dass das so einfach ist?! 🙂 Hoffe, es hilft auch anderen!

Online-Formeleditor zur grafischen Darstellung von Formeln + Download der Formeln als Bild

Wer schnell und einfach Formeln aus verschiedensten Bereichen wie Algebra, Matrizenrechnung, Trigonometrie, Geometrie, Chemie oder Physik in ein Dokument, eine Hausarbeit oder eine Präsentation einarbeiten möchte, kann dies ganz einfach online tun. Gerade beim Stöbern auf Pantox‘ Blog stieß ich auf eine Möglichkeit. Der LaTeX Gleichungseditor erledigt dies einfach durch ein paar simple Mausklicks. So lässt sich eine Matrix mal eben so darstellen:

 

 

Die Formeln lassen sich auch mit Farbe unterlegen oder / und einfärben:

 

Die automatisch generierten Grafiken lassen sich von 50 – 300dpi einstellen und in verschiedenen Formaten wie PNG, GIF, PDF oder SWF herunterladen oder in eine Webseite einbetten. Ebenfalls lässt sich auch der Code für einen anderen LaTeX – Editor oder für das phpBB-Board z.B. anzeigen oder auf die Gleichung linken. Alles in allem ein sehr komfortabler Editor und alles gratis! Fast schon unglaublich.

Internet Explorer 7 / 8 lässt sich nicht installieren – Lösung

Na da schau einer mal her! Nach einer Neuinstallation meines Betriebssystems Windows XP mit Service Pack 1 und den Updates Service Pack 2 und Service Pack 3 ließ sich der Internet Explorer 6 nicht upgraden. Gut, manch einer mag denken: "IE will ich eh nicht haben, verwende ich nicht und muss ich auch nicht aktualisieren." Jedoch gerade als Webentwickler ist es wohl notwendig, Seiten auch im Internet Explorer zu testen. Folglich muss ich den installieren, ob ich will oder nicht. Es gibt immerhin immernoch zu viele, die den Internet Explorer nutzen und viele Webentwickler, die wegen dem Internet Explorer ihre Nerven schon verloren haben … Dennoch hab ich versucht, den IE 7 zu installieren. Erst hab ich es via Update versucht, schlug fehl. Dann hab ich mir den IE 8 heruntergeladen und versucht, diesen zu installieren … schlug ebenfalls fehl. Alles, was passierte, war, dass auf meinem Desktop ein Link erschien zu einer Seite von Microsoft mit Vorschlägen, wie man das Problem, dass sich der Internet Explorer nicht installieren lässt, beheben kann. Ein paar dieser Vorschläge hab ich versucht, jedoch ebenfalls erfolglos. Folglich gab ich auf. Ich erzählte dies vielen Leuten, keiner wusste Rat. Und das, obwohl die meisten Kommilitonen sind, die ebenfalls Informatik im Master-Studiengang studieren.

Der Top-Tipp, um den Internet Explorer zu installieren, kam vom technischen Mitarbeiter meiner Fachhochschule in Erfurt: Ich hatte, bevor ich die Upgrades von Service Pack 2 und 3 bereits den Acrobat Reader 9 installiert. Dieser, warum auch immer, verhinderte die Installation des neuen Internet Explorers! Nach Deinstallation des Acrobat Readers 9 konnte ich problemlos den Internet Explorer 8 installieren und vermute, dass die Installation des Internet Explorers 7 auch möglich wäre.

Nun hoffe ich, dass diese Informationen jemandem helfen, der die gleichen Probleme hat. Feedback ist erwünscht :-).

Links in Posts von WordPress ersetzen in der Datenbank mit MySQL-Anweisung

Achtung! Dieser Beitrag ist ursprünglich vom Januar 2009 und damit schon sehr alt. Die hier veröffentlichten Informationen zum Umziehen berücksichtigen keine URLs, die serialisiert abgelegt werden. Bei serialisierten Daten können nicht einfach die URLs ersetzt werden, da hier die Zeichenlänge mit abgespeichert wird. Eine sicherere Variante gibt es hier: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ (in Englisch)

Der ursprüngliche Artikel:

Gerade ein akuter Fall bei mir gewesen: ich hatte zwecks Domainumzug (nicht bei mir, ich bleib hier! 🙂 ) das Problem, dass ich Artikel eines anderen Blogs in den neuen Blog importiert hatte, in denen Bilder verlinkt waren, welche jedoch noch zur alten Domain verlinkten. Via FTP hab ich das upload-Verzeichnis direkt in den neuen Blog übertragen können und somit alle hochgeladenen Bilder des alten Blogs bereits auf dem neuen Blog gehabt, jedoch nur physisch und nicht verlinkt. Nun wollte ich aber nicht die über 100 Artikel bearbeiten und die Bild-URLs aktualisieren, sondern suchte nach einer anderen Lösung. Ich wollte in der Datenbank in der Tabelle

wp_posts

in der Spalte

post_content

alle URLs mit der neuen Domain ersetzen. Auf der Suche nach einer Lösung suchte ich als erstes in der MySQL-Doku nach der

REPLACE()

-Funktion, diese jedoch liefert keine allzu guten Beispiele :-(. Glücklicherweise traf ich auf den Blog des Pfannenwenders, welcher in seinem Artikel „Suchen und Ersetzen in MySQL-Tabellen“ mir die Lösung auf dem Teller präsentierte.

 

Der entscheidende Befehl, welcher auf der MySQL-Datenbank auszuführen ist, lautet also:

 

UPDATE `wp_posts` SET `post_content` = REPLACE (
`post_content`,
'www.altedomain.de',
'www.neuedomain.de'
)

 

Dieser Befehl ersetzt alle vorkommenden www.altedomain.de mit www.neuedomain.de, beispielsweise: Im Artikel steht noch der alte Link:

<img src="http://www.altedomain.de/wp-content/uploads/bild.jpg" alt="" />

. Nach dem Ausführen des Update-Befehls steht dann statt dem alten Link dort:

<img src="http://www.neuedomain.de/wp-content/uploads/bild.jpg" alt="" />

. Und genauso wollte ich es haben! 🙂

Zu beachten sind die Backticks ( ` ) und die einfachen Anführungszeichen ( ). Die Tabelle und die Spalte der Tabelle müssen in Backticks geschrieben werden, die Suchstrings in einfachen Anführungszeichen. Falsch gesetzt wirft die Datenbank einen Fehler und führt den Update-Prozess nicht durch. Und, wie schon in Pfannenwenders Artikel: BACKUP der Datenbank vorher machen! Denn sonst ist alles schlimmstenfalls verpfuscht und nicht wiederherstellbar!

So, nun hoff ich mal, dass das jemandem hilft :-). Mir hats sehr geholfen und mindestens 600 Klicks erspart und ca. 2,5 Stunden Arbeit!

strstr() / stristr() – „Bug“: Wrong parameter count for stristr() – mögliche Lösung?

Problem: Ich habe einen String, welchen ich auseinandernehmen will. Der String beinhaltet ein Sonderzeichen als Trenner. Ich möchte alle Zeichen, welche VOR diesem Trenner stehen als Teilstring bekommen. Die Funktion strstr() bzw. stristr() (Groß- und Kleinschreibung ist mir egal) liefert mir jedoch nur den Teilstring NACH dem gefundenen Sonderzeichen. Sie verfügt jedoch über den Zusatzparameter "before_needle". Wenn ich den auf TRUE setze, sollte die Funktion den Teilstring vor dem gefundenen Sonderzeichen (Suchstring "needle") zurückgeben, stattdessen passierte mir folgendes:

Gerade beim Auseinandernehmen von Strings und dem Versuch, den Teilstring eines Strings vor dem gefundenen Suchstring zu bekommen mittels der PHP-Funktion strstr() oder stristr(), kam folgender Fehler zustande: "Wrong parameter count for stristr()". Leider gibts die Funktion erst ab PHP Version 5.3, die ist aber noch nicht veröffentlicht. Wer einen Teilstring haben möchte, der VOR dem gefundenen Parameter steht, kann stattdessen mb_stristr() benutzen. Das funktioniert, wobei ich nicht weiß, ob diese Funktion, da Multibyte-String-Funktion, speicherintensiver ist. Da ich nur einen ganz kleinen String auseinandernehmen musste, stört mich dies jedoch nicht ;-). Vielleicht hilfts ja noch jemandem weiter!

Ach ja: Frohes neues Jahr allen Lesern und denen, die auf diesen Artikel stoßen! 🙂