On Tuesday, 20 March 2012 at 04:32:13 UTC, Adam D. Ruppe wrote:
I know very little about std.xml (I looked at it and
said 'meh' and wrote my own lib), but my lib
makes this pretty simple.
https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff
grab dom.d and characterencodings.d
This has a bit of an html bias, but it works for xml too.
===
import arsd.dom;
import std.file;
import std.stdio;
import std.conv;
void main() {
auto document = new Document(readText("test12.xml"), true,
true);
auto map = document.requireSelector("map");
writeln(to!int(map.width), "x", to!int(map.height));
foreach(tile; document.getElementsByTagName("tile"))
writeln(tile.gid);
}
===
$ dmd test12.d dom.d characterencodings.d
$ test12
25x19
<snip tile data>
Hi Adam,
I'm also interested in your solution, as the std.xml page is so
sparsely documented I can't make head nor tail of it. Also,
neither of the examples compile for me, making life that little
bit harder!
Sadly, I can't get your code working either! I have downloaded
the folder zip from your github link, and extracted it so that
all the .d files are living in C:\D\dmd2\src\phobos\arsd\
If I try to compile the code you gave above, I get a pile of
linking errors using D 2.059:
C:\D\dmd2\windows\bin\dmd.exe parseSpain -O
OPTLINK (R) for Win32 Release 8.00.12
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
parseSpain.obj(parseSpain)
Error 42: Symbol Undefined _D4arsd3dom12__ModuleInfoZ
parseSpain.obj(parseSpain)
Error 42: Symbol Undefined _D4arsd3dom8__assertFiZv
parseSpain.obj(parseSpain)
Error 42: Symbol Undefined
_D4arsd3dom24ElementNotFoundException7__ClassZ
parseSpain.obj(parseSpain)
Error 42: Symbol Undefined
_D4arsd3dom24ElementNotFoundException6__ctorMFAyaAya
AyaiZC4arsd3dom24ElementNotFoundException
parseSpain.obj(parseSpain)
Error 42: Symbol Undefined
_D4arsd3dom8Document6__ctorMFAyabbZC4arsd3dom8Docume
nt
parseSpain.obj(parseSpain)
Error 42: Symbol Undefined _D4arsd3dom8Document7__ClassZ
--- errorlevel 6
Do you have any idea what's going on?!