parse int error
Peter Eisenhower
peter.eisenhower at gmail.com
Sun Nov 3 11:58:33 PST 2013
On Wednesday, 30 October 2013 at 18:19:13 UTC, Ali Çehreli wrote:
> On 10/29/2013 06:02 PM, Peter Eisenhower wrote:
>> I am confused as to why I cannot pass the return of the tag
>> attribute
>> directly into the parse int.
>>
>> // This works
>> string s = xml.tag.attr["key"];
>> int key = parse!int(s);
>>
>> // Compile error on these
>> int key = parse!int(xml.tag.attr["key"]);
>> int key = parse!int(cast(string) cml.tag.attr["key"]);
>
> A trivial wrapper makes it convenient:
>
> import std.xml;
> import std.conv;
>
> T getAttr(T)(DocumentParser xml, string attrName)
> {
> string s = xml.tag.attr[attrName];
> T attr = parse!T(s);
> return attr;
> }
>
> unittest
> {
> auto xml = new DocumentParser(`<test key="1"></test>`);
> auto key = xml.getAttr!int("key");
> assert(key == 1);
> }
>
> void main()
> {}
>
> Ali
Thanks
More information about the Digitalmars-d-learn
mailing list