Über dieses Blog...
Tipps und Tricks, aber auch Kritik - breit gefächert von Technik bis hin zum Design, manchmal (oder immer öfter) auch Politik.
Momentaner Fokus: Android/Java, CalDAV, Windows 7 benutzbar machen
Feeds
Interessant gefunden? Mitlesen? Vollständige Beiträge per Feed.
Zur Weiterverarbeitung oder zum Einbauen für Ihre Homepage: CSV, JavaScript
Tag-Cloud
Durchsuchen
Kategorien
Archiv
| Mo | Di | Mi | Do | Fr | Sa | So |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 |
Java: XML parsen
Von e7 am 10.08.2010, 22:50 in der Kategorie Code-Snippets mit den Tags xml android java. Kompletten Eintrag zeigen
Für das nächste Experiment hab ich mir einfach mal den Heise Atom-Feed lokal abgespeichert. Ist zwar nicht gerade der beste Feed (nur so ein unbrauchbarer gekürzter), aber immerhin XML :)
Um alles zu kriegen, muss die Ausgabefunktion modifiziert werden:
public static void printObject(Node n, int ebene) {
NodeList nl = n.getChildNodes();
int i, j;
for (i = 0; i < nl.getLength(); i++) {
n = nl.item(i);
for (j = 0; j < ebene; j++) System.out.print(„ „);
System.out.println(n.getNodeName());
System.out.println(n.getNodeValue());
printArgs(n);
printObject(n, ebene+1);
}
}
Eine XML-Datei in den Parser zu werfen, ist nicht sonderlich schwierig:
public static void main (String args[]) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse(new File(„c:\\temp\\heise-atom.xml“));
printObject(d, 0);
}
Auf Anhieb hab ich jetzt allerdings keine direkte Möglichkeit gesehen, einfach einen stinknormalen String da reinzubekommen. Mal schauen, vielleicht ist das auch nicht nötig und die HTTP-Anfrage kann per InputStream einfach weitergereicht werden…
Java: XML erzeugen
Von e7 am 10.08.2010, 22:24 in der Kategorie Code-Snippets mit den Tags xml android java. Kompletten Eintrag zeigen
XML in Java erzeugen erinnert mich irgendwie an JavaScript (zumindest an das JavaScript von XHTML, dieses HTML5-Zeugs erlaubt ja wieder SGML, bin ich drauf gespannt…) Interessant sind die Imports:
import javax.xml.parsers.*;
import org.w3c.dom.*;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.newDocument();
Element root = d.createElement(„rootelement“);
root.setAttribute(„attribut", „wert-dazu-mit-&-ampersand“);
d.appendChild(root);
int i;
Element child1, child2;
child2 = root;
for (i = 1; i < 10; i++) {
child1 = d.createElement(„child“);
root.appendChild(child1);
child1 = d.createElement(„child“);
child2.appendChild(child1);
child2 = child1;
}
printObject(d, 0);
Die dazugehörige Funktion printObject:
public static void printObject(Node n, int ebene) {
NodeList nl = n.getChildNodes();
int i, j;
for (i = 0; i < nl.getLength(); i++) {
n = nl.item(i);
for (j = 0; j < ebene; j++) System.out.print(„ „);
System.out.println(n.getNodeName());
printObject(n, ebene+1);
}
}
An die Attribute kommt man so:
public static void printArgs(Node n) {
int i;
NamedNodeMap nnm = n.getAttributes();
Node na;
if (nnm == null) return;
for (i = 0; i < nnm.getLength(); i++) {
na = nnm.item(i);
System.out.println(na.getNodeName()+“ = „+na.getNodeValue());
}
}
Standard beachten und Bugs produzieren...
Von e7 am 08.02.2009, 22:34 in der Kategorie e7o.de mit den Tags standard xml rss verbesserung bug e7o.de. Kompletten Eintrag zeigen
Nun hat's mich selbst ganz böse erwischt: In der Sidebar steht ganz groß „Vollständige Feeds“ für meine RSS-Feed, und dabei wurde immer was abgeschnippelt. Ist damals beim Testen nicht so aufgefallen, da die Einträge immer kürzer waren. Der Atom-Feed enthielt schon immer die vollständigen Einträge; dem RSS-Feed fehlte bisher der komplette <content:encoded>-Bereich. Außerdem hab ich inzwischen von <author> auf <dc:creator> umgestellt, da ersteres eigentlich eine vollständige Mailadresse erwartet. Und <guid> enthält jetzt den (oder zumindest einen) Perma-Link (Notiz an mich: SEO-Links rein…)
Ach ja, und es gibt noch eine große, wichtige Neuerung: Der Feed wird jetzt visuell komplett korrekt ausgeliefert. Man sieht nun keinerlei BB-Codes mehr, diese sollten eigentlich komplett in HTML geparst werden. Zumindest ist mir kein BB-Code mehr aufgefallen.
Außerdem habe ich rechts die Sidebar leicht aufgeräumt und umgeschlichtet. Dabei ist mir aufgefallen, dass ich das mit meinem CMS doch noch mal überdenken sollte — es ist doch schon wieder sehr viel Gebastel und Gefrickel. Vielleicht mal wirklich ordentlich Software Engineering betreiben, samt Wasserfallmodell und irgendwelchen Anforderungsanalysen, Sequenzdiagrammen etc. — was allerdings die Sache ziemlich verzögern dürfte.
Ansonsten nur noch der Hinweis: Jeder, der bisher gezögert hatte, meinen Feed zu abonnieren, kann sich jetzt nicht mehr rausreden. Sauber, korrekt umgesetzt, vollständige Einträge, interessanter Content (hoffe ich zumindest). Den Rest bitte ich auf diesem Wege, einfach mal einen Kommentar zu diesem Blogeintrag zu posten. Ich wüsste nämlich gerne, wie viele aktive Leser (die sogar Blogeinträge wie diesen lesen) es so ungefähr gibt — vielen Dank schon mal :) Feedback ist natürlich ebenfalls willkommen, ebenso welche Themen ich weglassen soll, von was mehr kommen könnte usw.
Und nun: Let's follow :)
Alle Nachrichten finden Sie im Archiv.
© 2001 - 2012 by e7o.de; powered by e7cms. XHTML Strict für gute Browser.