fixed empty attribute reading bug
This commit is contained in:
		@@ -552,7 +552,7 @@ namespace xml {
 | 
				
			|||||||
        if (nameRead) { // read attribute
 | 
					        if (nameRead) { // read attribute
 | 
				
			||||||
          std::string attrname(1, c), attrvalue;
 | 
					          std::string attrname(1, c), attrvalue;
 | 
				
			||||||
          while (is && is.get(c) && c!='=' && c!='>' && !ws(c)) attrname+=c;
 | 
					          while (is && is.get(c) && c!='=' && c!='>' && !ws(c)) attrname+=c;
 | 
				
			||||||
          while (c!='=' && is && is.get(c) && ws(c)); // skip ws, search '='
 | 
					          while (ws(c) && is && is.get(c)); // skip ws, search '='
 | 
				
			||||||
          if (c=='=') { // get the value
 | 
					          if (c=='=') { // get the value
 | 
				
			||||||
            while (is && is.get(c) && ws(c)); // skip ws
 | 
					            while (is && is.get(c) && ws(c)); // skip ws
 | 
				
			||||||
            if (c!='"')
 | 
					            if (c!='"')
 | 
				
			||||||
@@ -560,7 +560,9 @@ namespace xml {
 | 
				
			|||||||
            while (is && is.get(c) && c!='"') attrvalue+=c;
 | 
					            while (is && is.get(c) && c!='"') attrvalue+=c;
 | 
				
			||||||
            if (c!='"')
 | 
					            if (c!='"')
 | 
				
			||||||
              throw attribute_value_not_quoted(position, is, tag, c, attrname);
 | 
					              throw attribute_value_not_quoted(position, is, tag, c, attrname);
 | 
				
			||||||
          } else is.unget(); // read too far
 | 
					          } else {
 | 
				
			||||||
 | 
					            is.unget();
 | 
				
			||||||
 | 
					          }// read too far
 | 
				
			||||||
          if (tag.attributes.find(attrname)!=tag.attributes.end())
 | 
					          if (tag.attributes.find(attrname)!=tag.attributes.end())
 | 
				
			||||||
            throw duplicate_attribute(position, is, tag, attrname);
 | 
					            throw duplicate_attribute(position, is, tag, attrname);
 | 
				
			||||||
          tag.attributes[attrname] = attrvalue;
 | 
					          tag.attributes[attrname] = attrvalue;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user