【发布时间】:2012-03-19 23:17:09
【问题描述】:
我正在尝试解析一个 XML 文档,该文档存储我的 2D 游戏中的地图数据。我试图一步一步来,我已经加载了文件,创建了一个新的文档解析器,并选择了一个我想要提取的开始标签和属性。但是,当我检查属性的值应该是什么时(25),结果为零。告诉我我遗漏了一些东西并且它没有提取 XML 值。
这是正在解析的 XML 文件:http://pastebin.com/tpUU1Wtv
void LoadMap(string filename)
{
enforce( filename != "" , "Filename is invalid!" );
xmlData = cast(string) read(filename);
enforce( xmlData != "", "Read file Failed!" );
}
void ParseMap()
{
auto xml = new DocumentParser(xmlData);
xml.onStartTag["map"] = (ElementParser e)
{
mapWidth = to!int(e.tag.attr["width"]);
};
xml.parse();
writeln("Map Width: ", mapWidth);
}
【问题讨论】:
-
如果你不转换为
inte.tag.attr["width"]持有什么(还有其他什么属性) -
就 writeln 而言,它包含一个空字符串。在地图标签下:
-
也许添加“e.parse();”在“mapWidth = ...”行之后?如dlang.org/phobos/std_xml.html