Database Reference
In-Depth Information
<page>
<title> Anarchism </title>
<id> 12 </id>
<revision>
<id> 408067712 </id>
<timestamp> 2011-01-15T19:28:25Z </timestamp>
<contributor>
<username> RepublicanJacobite </username>
<id> 5223685 </id>
</contributor>
<comment> Undid revision 408057615 by [[Special:Contributions... </comment>
<text xml:space= "preserve" > {{Redirect|Anarchist|the fictional character|
...
[[bat-smg:Anarkezmos]]
</text>
</revision>
</page>
Da wir so clever waren, sind hier alle Informationen enthalten, die wir in
unserem Schema bereits berücksichtigt haben: Titel (Zeilenschlüssel), Text,
Zeitstempel und Autor. Es sollte also nicht allzu schwierig ein, ein Skript zu
schreiben, das die Artikel importiert.
XML-Streaming
Doch der Reihe nach. Das Parsing dieser riesigen XML-Dateien verlangt ein
Streaming a la SAX, weshalb wir damit beginnen wollen. Die grundlegende
FormdesParsingseinerXML-Datei(Datensatz für Datensatz) sieht bei JRuby
in etwa so aus:
hbase/basic_xml_parsing.rb
import 'javax.xml.stream.XMLStreamConstants'
factory = javax.xml.stream.XMLInputFactory.newInstance
reader = factory.createXMLStreamReader(java.lang.System.in)
while reader.has _ next
type = reader.next
if type == XMLStreamConstants::START _ ELEMENT
tag = reader.local _ name
# verarbeite Tag
elsif type == XMLStreamConstants::CHARACTERS
text = reader.text
# verarbeite den Text
elsif type == XMLStreamConstants::END _ ELEMENT
# wie START _ ELEMENT
end
end
Sieht man sich das genauer an, sind hier ein paar Dinge erwähnenswert. Zu-
erst erzeugen wir einen XMLStreamReader und verknüpfen ihn mit java.lang.
System.in , d. h., das Einlesen erfolgt über die Standardeingabe.
 
Search WWH ::




Custom Search