digitalmars.D.bugs - [Issue 3200] New: std.xml doesn't follow spec for Tag.text
- d-bugmail puremagic.com (40/40) Jul 21 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3200
- d-bugmail puremagic.com (43/43) Apr 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3200
- d-bugmail puremagic.com (10/10) May 23 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3200
- d-bugmail puremagic.com (12/12) May 23 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3200
http://d.puremagic.com/issues/show_bug.cgi?id=3200 Summary: std.xml doesn't follow spec for Tag.text Product: D Version: 2.031 Platform: Other URL: http://digitalmars.com/d/2.0/phobos/std_xml.html#text OS/Version: Linux Status: NEW Severity: minor Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: Jesse.K.Phillips+D gmail.com CC: Jesse.K.Phillips+D gmail.com According to the documentation having & in a tag will be turned to &. The example code below will output: Attr: What &amp; Up Elem: What & Up *testfile.xml:* <?xml version="1.0" encoding="utf-8"?> <Tests> <Test thing="What & Up">What & Up</Test> </Tests> *test.d:* import std.stdio; import std.xml; void main() { auto file = "testfile.xml"; auto s = cast(string)std.file.read(file); auto xml = new DocumentParser(s); xml.onStartTag["Test"] = (ElementParser xml) { writeln("Attr: ", xml.tag.attr["thing"]); }; xml.onEndTag["Test"] = (in Element e) { writeln("Elem: ", e.text); }; xml.parse(); } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 21 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3200 Rainer Schuetze <r.sagitario gmx.de> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |r.sagitario gmx.de PDT --- This is caused by encode and decode being inverted for attributes and the the element text never being decoded. Here is a patch Index: xml.d =================================================================== --- xml.d (revision 1476) +++ xml.d (working copy) -991,7 +991,7 reqc(s,'='); munch(s,whitespace); reqc(s,'"'); - string val = encode(munch(s,"^\"")); + string val = decode(munch(s,"^\"")); reqc(s,'"'); munch(s,whitespace); attr[key] = val; -1088,7 +1088,7 { string s = "<" ~ name; foreach(key,val;attr) - s ~= format(" %s=\"%s\"",key,decode(val,DecodeMode.LOOSE)); + s ~= format(" %s=\"%s\"",key,encode(val.dup)); // decode(val,DecodeMode.LOOSE)); return s; } -1945,7 +1945,7 invariant(char)* p = startTag.tagString.ptr + startTag.tagString.length; invariant(char)* q = tag_.tagString.ptr; - text = p[0..(q-p)]; + text = decode(p[0..(q-p)]); auto element = new Element(startTag); if (text.length != 0) element ~= new Text(text); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 05 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3200 Shin Fujishiro <rsinfu gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |rsinfu gmail.com AssignedTo|nobody puremagic.com |rsinfu gmail.com -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 23 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3200 Shin Fujishiro <rsinfu gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED --- Fixed in svn r1544. Thanks for the patch! -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 23 2010