XML/DOM serialization: Difference between revisions
< XML
Content added Content deleted
mNo edit summary |
(Undo revision 7029 by Special:Contributions/Cf2Nem (User talk:Cf2Nem)) |
||
Line 1: | Line 1: | ||
{{task}} |
|||
[http://down.rigour.info/blog/cantiere-investimento.htm cantiere investimento] [http://blog.rigour.info/web/viaggi-costa/ viaggi costa rica] [http://blog.rigour.info/web/la-guerra/ la guerra del fuoco] [http://italy.rigour.info/blog/www-il.htm www il mattino it] [http://online.rigour.info/donnevecchie/ donnevecchie] [http://web.rigour.info/prova-scitta/ prova scitta italiano] [http://all.rigour.info/imobiliare/ imobiliare] [http://guest.rigour.info/library/html/discoteche-legnano/ discoteche legnano] [http://speed.rigour.info/foppapedretti-lettini.htm foppapedretti lettini] [http://milano.rigour.info/mai-hi.htm mai hi] [http://gratis.rigour.info/content/view/route-.htm route 66 mobile italia 2005] [http://load.rigour.info/view/new/hyundai-atos.htm hyundai atos 1999] [http://dir.rigour.info/maria-rosa/ maria rosa] [http://speed.rigour.info/jeans-seal.htm jeans seal kay] [http://up.rigour.info/description/lib/crack-sp.htm crack sp1 xp] [http://dir.rigour.info/listini-prezzi/ listini prezzi mitsubishi pajero] [http://web.rigour.info/plan-b/ plan b dj joe] [http://milano.rigour.info/ipod-gb.htm ipod 6gb] [http://online.rigour.info/poltrona-piscina/ poltrona piscina] [http://down.rigour.info/blog/z-casio.htm z3 casio] [http://web.rigour.info/hitachi/ hitachi 1 8] [http://up.rigour.info/description/lib/laserjet-.htm laserjet 1100 toner] [http://milano.rigour.info/registratore-digitale.htm registratore digitale creative] [http://milano.rigour.info/nathalie-cardone.htm nathalie cardone hasta siempre] [http://paga.rigour.info/videogiochi/ videogiochi] [http://blog.rigour.info/web/laser-colori/ laser colori a3] [http://load.rigour.info/view/new/zoppas-p.htm zoppas p 6] [http://blog.rigour.info/web/condono-edilizio/ condono edilizio in toscana] [http://paga.rigour.info/travelmate-lmi/ travelmate 4051lmi] [http://note.rigour.info/content/view/collettivo-sole.htm collettivo sole luna] [http://web.rigour.info/giochi-miniclip/ giochi miniclip] [http://it.rigour.info/topic/veicoli-elettrici/ veicoli elettrici] [http://paga.rigour.info/batteria-philips/ batteria philips 355] [http://here.rigour.info/blog/foutu.htm foutu] [http://content.rigour.info/html/somos-gitanos/ somos gitanos gipsy kings] [http://load.rigour.info/view/new/apple-presenta.htm apple presenta il piccolo ipod shuffle] [http://dir.rigour.info/runing/ runing] [http://it.rigour.info/topic/manjon/ manjon] [http://milano.rigour.info/memory-stick.htm memory stick pro 1] [http://up.rigour.info/description/lib/d-arrigo.htm d arrigo] [http://uve.rigour.info/blog/video-naomi.htm video naomi cambel] [http://note.rigour.info/content/view/donna-nudi.htm donna nudi] [http://italy.rigour.info/blog/bennett-james.htm bennett, james gordon] [http://here.rigour.info/blog/jane-seggiolino.htm jane seggiolino racing] [http://up.rigour.info/description/lib/la-gang.htm la gang di laura] [http://note.rigour.info/content/view/moventi-diversi.htm moventi diversi] [http://speed.rigour.info/appunti-microeconomia.htm appunti microeconomia] [http://dir.rigour.info/audigy/ audigy 4] [http://online.rigour.info/rifiuti/ rifiuti] [http://gratis.rigour.info/content/view/ssis-parma.htm ssis parma] [http://it.rigour.info/topic/decollete-d/ decollete 3d] [http://web.rigour.info/i-ll/ i ll fly with you tanzen remix] [http://milano.rigour.info/brother-dr.htm brother dr 2000] [http://gratis.rigour.info/content/view/suoinerie-nokia.htm suoinerie nokia 3310] [http://speed.rigour.info/mini-bikini.htm mini bikini] [http://gratis.rigour.info/content/view/il-mostro.htm il mostro del museo delle cere] [http://italy.rigour.info/blog/controllo-statistico.htm controllo statistico dei processi] [http://speed.rigour.info/batterie-nokia.htm batterie nokia 9110] [http://italy.rigour.info/blog/tagliacapelli.htm tagliacapelli 15] [http://it.rigour.info/topic/norwood-massachusetts/ norwood (massachusetts)] [http://down.rigour.info/blog/dvd-philips.htm dvd philips bulk] [http://pagina.rigour.info/documento-del/ documento del 15 maggio] [http://uve.rigour.info/blog/giovani-nel.htm giovani nel 1968] [http://pagina.rigour.info/autoradio-ingresso/ autoradio ingresso] [http://web.rigour.info/salt/ salt] [http://guest.rigour.info/library/html/www-sorrisi/ www sorrisi rai it] [http://here.rigour.info/blog/contratto-artigianato.htm contratto artigianato] [http://online.rigour.info/misrepresented-people/ misrepresented people] [http://content.rigour.info/html/scoobydoo-ps/ scooby-doo ps2 videogiochi] [http://note.rigour.info/content/view/gdv.htm gdv] [http://gratis.rigour.info/content/view/oggetti-di.htm oggetti di fantasia] [http://web.rigour.info/touran-trendline/ touran trendline] [http://pagina.rigour.info/camere-livorno/ camere livorno] [http://pagina.rigour.info/rex-combinato/ rex combinato a] [http://online.rigour.info/digital-pen/ digital pen nokia] [http://blog.rigour.info/web/fotos-ivy/ fotos ivy queen] [http://down.rigour.info/blog/wwww-vacanze.htm wwww vacanze] [http://paga.rigour.info/roll-deep/ roll deep] [http://dir.rigour.info/master-sound/ master sound reference 845] [http://dir.rigour.info/foto-sexy/ foto sexy di anna valle] [http://up.rigour.info/description/lib/occhiali-caravan.htm occhiali caravan] [http://uve.rigour.info/blog/traduzione-italiano.htm traduzione italiano inglese programma] [http://all.rigour.info/la-volpe/ la volpe a tre zampe] [http://all.rigour.info/olio-e/ olio e aceto] [http://milano.rigour.info/mirosul.htm mirosul] [http://blog.rigour.info/web/bas-armagnac/ bas armagnac] [http://dir.rigour.info/feldkirch/ feldkirch] [http://load.rigour.info/view/new/spot-estremi.htm spot estremi] [http://content.rigour.info/html/federgolf/ federgolf] [http://guest.rigour.info/library/html/telefonini-umts/ telefonini umts samsung sgh z300] [http://web.rigour.info/vendita-memorie/ vendita memorie ram] [http://here.rigour.info/blog/samsung-microonde.htm samsung microonde ce 287 dn-s] [http://paga.rigour.info/nikon-/ nikon 70-300 g] [http://down.rigour.info/blog/orientale-sudan.htm orientale (sudan)] [http://online.rigour.info/a-fsi/ a3 fsi] [http://guest.rigour.info/library/html/kalmia/ kalmia] [http://it.rigour.info/topic/veloso-caetano/ veloso caetano] [http://blog.rigour.info/web/svizzera-lugano/ svizzera lugano] [http://paga.rigour.info/osculati/ osculati] [http://up.rigour.info/description/lib/tettoie-in.htm tettoie in legno] [http://up.rigour.info/description/lib/vivavoce-nokia.htm vivavoce nokia 3100] [http://down.rigour.info/blog/la-ragazza.htm la ragazza del golden saloon] [http://uve.rigour.info/blog/prime-immagini.htm prime immagini di gioco per scarface] [http://guest.rigour.info/library/html/so-far/ so far away dire straits] [http://blog.rigour.info/web/scheda-wlan/ scheda wlan] [http://uve.rigour.info/blog/ulubat.htm ulubat] [http://all.rigour.info/ramsus/ ramsus] [http://pagina.rigour.info/lightn/ lightn] [http://milano.rigour.info/trucchi-pc.htm trucchi pc gta 3] [http://guest.rigour.info/library/html/camicia-nere/ camicia nere] [http://dir.rigour.info/sei-giorni/ sei giorni di enduro 2004] [http://blog.rigour.info/web/hd-foto/ hd foto] [http://pagina.rigour.info/magnanina/ magnanina] [http://paga.rigour.info/sopravvivenza-antichi/ sopravvivenza antichi] [http://blog.rigour.info/web/il-bigliardo/ il bigliardo] [http://note.rigour.info/content/view/ferrari-wlmi.htm ferrari 4002wlmi] [http://content.rigour.info/html/nomi-in/ nomi in cinese] [http://it.rigour.info/topic/mozzafiato/ mozzafiato] [http://pagina.rigour.info/shantung/ shantung] [http://uve.rigour.info/blog/eco-drive.htm eco drive citizen orologi] [http://italy.rigour.info/blog/previsioni-lotto.htm previsioni lotto gratis] [http://web.rigour.info/di-simone/ di simone] [http://load.rigour.info/view/new/beebob.htm beebob] [http://italy.rigour.info/blog/sulla-neve.htm sulla neve] [http://speed.rigour.info/pegao.htm pegao] [http://note.rigour.info/content/view/aeg-a.htm aeg a frigo] [http://online.rigour.info/sulla-strada/ sulla strada jack kerouac libri] [http://dir.rigour.info/cavigliera/ cavigliera] [http://load.rigour.info/view/new/www-match.htm www match com] [http://milano.rigour.info/ipod-nano.htm ipod nano 4gb nero] [http://online.rigour.info/piedras-y/ piedras y flores] [http://uve.rigour.info/blog/newport-news.htm newport news va] [http://uve.rigour.info/blog/piaggio-liberty.htm piaggio liberty 200 4t] [http://milano.rigour.info/la-canzone.htm la canzone del destino] [http://up.rigour.info/description/lib/ozone-mai.htm ozone mai a hi] [http://here.rigour.info/blog/la-terza.htm la terza luna] [http://content.rigour.info/html/www-caravanbacci/ www caravanbacci it] [http://guest.rigour.info/library/html/prova/ prova] [http://milano.rigour.info/nintendogs-ds.htm nintendogs ds] [http://blog.rigour.info/web/ricevitore-gps/ ricevitore gps blutooth] [http://load.rigour.info/view/new/sua-altezza.htm sua altezza si sposa] [http://milano.rigour.info/il-ventre.htm il ventre di maria] [http://guest.rigour.info/library/html/panasonic-th/ panasonic th 37pv500] [http://here.rigour.info/blog/dvbt-stick.htm dvb-t stick usb] [http://up.rigour.info/description/lib/la-noit.htm la noit] [http://all.rigour.info/hard-core/ hard core tv] [http://web.rigour.info/libri-musica/ libri musica] [http://web.rigour.info/crack-dj/ crack dj mixstation 2] [http://uve.rigour.info/blog/masterizzatori-pc.htm masterizzatori pc] [http://it.rigour.info/topic/las-palmas/ las palmas] [http://it.rigour.info/topic/carol/ carol] [http://milano.rigour.info/maialino-it.htm maialino it] [http://up.rigour.info/description/lib/filmati-donne.htm filmati donne nude] [http://speed.rigour.info/fiat-panda.htm fiat panda 1 3 multijet emotion] [http://pagina.rigour.info/modem-router/ modem router adsl d-link] [http://all.rigour.info/km-renault/ km0 renault grand scenic auto km 0] [http://paga.rigour.info/juana-le/ juana le virgin] [http://gratis.rigour.info/content/view/giardino-di.htm giardino di tamara] [http://paga.rigour.info/kniphofia/ kniphofia] [http://online.rigour.info/www-regionesicilia/ www regionesicilia it] [http://it.rigour.info/topic/appunto-diritto/ appunto diritto] [http://all.rigour.info/adidas-superstar/ adidas superstar uomo] [http://uve.rigour.info/blog/ultima-decapitazione.htm ultima decapitazione] [http://here.rigour.info/blog/sette-dollari.htm sette dollari sul rosso] [http://gratis.rigour.info/content/view/gattopardo-il.htm gattopardo, il-] [http://pagina.rigour.info/geforce-le/ geforce 5700le] [http://all.rigour.info/gioca-joue/ gioca joue] [http://here.rigour.info/blog/free-matura.htm free matura movie gallery] [http://web.rigour.info/adattatore-auto/ adattatore auto usb accessori palmari] [http://milano.rigour.info/asus-vgt.htm asus v9999gt td] [http://content.rigour.info/html/poggibonsi/ poggibonsi] [http://all.rigour.info/concessionario-renault/ concessionario renault milano] [http://dir.rigour.info/hp-officejet/ hp officejet psc1610] [http://it.rigour.info/topic/georgia-shopping/ georgia shopping] [http://it.rigour.info/topic/breath-easy/ breath easy blue] [http://up.rigour.info/description/lib/canon-.htm canon 350 digitale] [http://online.rigour.info/voli-peru/ voli peru] [http://it.rigour.info/topic/rasmus-midi/ rasmus midi] [http://note.rigour.info/content/view/chrysler-concessionario.htm chrysler concessionario firenze] [http://paga.rigour.info/piscina-teramo/ piscina teramo] [http://gratis.rigour.info/content/view/fiat-bravo.htm fiat bravo 1.9 jtd torino] [http://web.rigour.info/problemi-renault/ problemi renault espace] [http://web.rigour.info/nikon-fm/ nikon fm] [http://down.rigour.info/blog/la-faccia.htm la faccia dell ignoranza] [http://gratis.rigour.info/content/view/lg-.htm lg 8120 sblocco] [http://it.rigour.info/topic/oops-video/ oops video] [http://load.rigour.info/view/new/murat-kekilli.htm murat kekilli] [http://down.rigour.info/blog/videoregistratore-dvd.htm videoregistratore dvd hd lan] [http://note.rigour.info/content/view/annuncio-affitti.htm annuncio affitti trentino alto adige] [http://down.rigour.info/blog/acer-n.htm acer n50] [http://pagina.rigour.info/lampada-di/ lampada di emergenza] [http://note.rigour.info/content/view/testi-canzoni.htm testi canzoni internazionali] [http://dir.rigour.info/acer-travelmate/ acer travelmate hd] [http://italy.rigour.info/blog/smode-studio.htm smode studio] [http://here.rigour.info/blog/gigi-d.htm gigi d alessio nuovo album] [http://it.rigour.info/topic/foto-di/ foto di angelina jolie] [http://dir.rigour.info/chi-ha/ chi ha vinto piu coppe al mondo calcio] [http://pagina.rigour.info/diffusori-thx/ diffusori thx] [http://paga.rigour.info/hp-designjet/ hp designjet 70] [http://paga.rigour.info/resident-evil/ resident evil movie] {{task}} |
|||
Create a simple DOM and having it serialize to: |
Create a simple DOM and having it serialize to: |
||
Line 29: | Line 29: | ||
println(document.saveXML(root)) |
println(document.saveXML(root)) |
||
(On the use of <code><unsafe></code>: The class has not yet been reviewed for E safety, so <code><import:...makeDocumentBuilderFactory></code> is not yet allowed. The review would probably be straightforward.) |
|||
(On the use of <code> |
|||
==[[JavaScript]]== |
|||
[[Category:JavaScript]] |
|||
'''Interpreter:''' Firefox 2.0 |
|||
DOM |
|||
var doc = document.implementation.createDocument( null, 'root', null ); |
|||
var root = doc.documentElement; |
|||
var element = doc.createElement( 'element' ); |
|||
root.appendChild( element ); |
|||
element.appendChild( document.createTextNode('Some text here') ); |
|||
var xmlString = new XMLSerializer().serializeToString( doc ); |
|||
E4X |
|||
var xml = <root> |
|||
<element>Some text here</element> |
|||
</root>; |
|||
var xmlString = xml.toXMLString(); |
|||
E4X — with processing instruction |
|||
XML.ignoreProcessingInstructions = false; |
|||
var xml = <?xml version="1.0"?> |
|||
<root> |
|||
<element>Some text here</element> |
|||
</root>; |
|||
var xmlString = xml.toXMLString(); |
|||
==[[Perl]]== |
|||
[[Category:Perl]] |
|||
use XML::DOM::BagOfTricks qw(createDocument createTextElement); |
|||
my ($doc, $root) = createDocument('root'); |
|||
$root->appendChild( |
|||
createTextElement($doc, 'element', 'Some text here') |
|||
); |
|||
print $doc->toString; |
|||
==[[PHP]]== |
|||
[[Category:PHP]] |
|||
'''Interpreter:''' [[PHP]] 5 |
|||
<?php |
|||
$dom = new DOMDocument();//the constructor also takes the version and char-encoding as it's two respective parameters |
|||
$dom->formatOutput = true;//format the outputted xml |
|||
$root = $dom->createElement('root'); |
|||
$element = $dom->createElement('element'); |
|||
$element->appendChild($dom->createTextNode('Some text here')); |
|||
$root->appendChild($element); |
|||
$dom->appendChild($root); |
|||
$xmlstring = $dom->saveXML(); |
|||
==[[Python]]== |
|||
[[Category:Python]] |
|||
'''Interpreter:''' [[Python]] 2.5 |
|||
from xml.dom.minidom import getDOMImplementation |
|||
dom = getDOMImplementation() |
|||
document = dom.createDocument(None, "root", None) |
|||
topElement = document.documentElement |
|||
firstElement = document.createElement("element") |
|||
topElement.appendChild(firstElement) |
|||
textNode = document.createTextNode("Some text here") |
|||
firstElement.appendChild(textNode) |
|||
xmlString = document.toprettyxml(" " * 4) |
|||
'''Interpreter:''' [[Python]] 2.5 |
|||
from xml.etree import ElementTree as et |
|||
root = et.Element("root") |
|||
et.SubElement(root, "element").text = "Some text here" |
|||
xmlString = et.tostring(root) |
|||
==[[Ruby]]== |
|||
[[Category:Ruby]] |
|||
require("rexml/document") |
|||
include REXML |
|||
(xml = Document.new) << XMLDecl.new |
|||
root=xml.add_element('root') |
|||
element=root.add_element('element') |
|||
element.add_text('Some text here') |
|||
puts xml.to_s(0) |
Revision as of 19:19, 21 August 2007
XML/DOM serialization
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Create a simple DOM and having it serialize to:
<?xml version="1.0" ?> <root> <element> Some text here </element> </root>
E
Implementation: E-on-Java
This makes use of XML libraries provided with Java.
def document := <unsafe:javax.xml.parsers.makeDocumentBuilderFactory> \ .newInstance() \ .newDocumentBuilder() \ .getDOMImplementation() \ .createDocument(null, "root", null) def root := document.getDocumentElement() root.appendChild( def element := document.createElement("element")) element.appendChild( document.createTextNode("Some text here")) println(document.saveXML(root))
(On the use of <unsafe>
: The class has not yet been reviewed for E safety, so <import:...makeDocumentBuilderFactory>
is not yet allowed. The review would probably be straightforward.)
JavaScript
Interpreter: Firefox 2.0
DOM
var doc = document.implementation.createDocument( null, 'root', null ); var root = doc.documentElement; var element = doc.createElement( 'element' ); root.appendChild( element ); element.appendChild( document.createTextNode('Some text here') ); var xmlString = new XMLSerializer().serializeToString( doc );
E4X
var xml = <root> <element>Some text here</element> </root>; var xmlString = xml.toXMLString();
E4X — with processing instruction
XML.ignoreProcessingInstructions = false; var xml = <?xml version="1.0"?> <root> <element>Some text here</element> </root>; var xmlString = xml.toXMLString();
Perl
use XML::DOM::BagOfTricks qw(createDocument createTextElement); my ($doc, $root) = createDocument('root'); $root->appendChild( createTextElement($doc, 'element', 'Some text here') ); print $doc->toString;
PHP
Interpreter: PHP 5
<?php $dom = new DOMDocument();//the constructor also takes the version and char-encoding as it's two respective parameters $dom->formatOutput = true;//format the outputted xml $root = $dom->createElement('root'); $element = $dom->createElement('element'); $element->appendChild($dom->createTextNode('Some text here')); $root->appendChild($element); $dom->appendChild($root); $xmlstring = $dom->saveXML();
Python
Interpreter: Python 2.5
from xml.dom.minidom import getDOMImplementation dom = getDOMImplementation() document = dom.createDocument(None, "root", None) topElement = document.documentElement firstElement = document.createElement("element") topElement.appendChild(firstElement) textNode = document.createTextNode("Some text here") firstElement.appendChild(textNode) xmlString = document.toprettyxml(" " * 4)
Interpreter: Python 2.5
from xml.etree import ElementTree as et root = et.Element("root") et.SubElement(root, "element").text = "Some text here" xmlString = et.tostring(root)
Ruby
require("rexml/document") include REXML (xml = Document.new) << XMLDecl.new root=xml.add_element('root') element=root.add_element('element') element.add_text('Some text here') puts xml.to_s(0)