Преглед на файлове

add query string method

Lee Thomason преди 8 години
родител
ревизия
5b00e0662f
променени са 2 файла, в които са добавени 19 реда и са изтрити 0 реда
  1. 11 0
      tinyxml2.h
  2. 8 0
      xmltest.cpp

+ 11 - 0
tinyxml2.h

@@ -1361,6 +1361,17 @@ public:
         return a->QueryFloatValue( value );
         return a->QueryFloatValue( value );
     }
     }
 
 
+	/// See QueryIntAttribute()
+	XMLError QueryStringAttribute(const char* name, const char** value) const {
+		const XMLAttribute* a = FindAttribute(name);
+		if (!a) {
+			return XML_NO_ATTRIBUTE;
+		}
+		*value = a->Value();
+		return XML_SUCCESS;
+	}
+
+
 	
 	
     /** Given an attribute name, QueryAttribute() returns
     /** Given an attribute name, QueryAttribute() returns
     	XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion
     	XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion

+ 8 - 0
xmltest.cpp

@@ -827,6 +827,14 @@ int main( int argc, const char ** argv )
 				XMLTest("Attribute: unsigned", (int)XML_SUCCESS, queryResult, true);
 				XMLTest("Attribute: unsigned", (int)XML_SUCCESS, queryResult, true);
 				XMLTest("Attribute: unsigned", unsigned(100), v, true);
 				XMLTest("Attribute: unsigned", unsigned(100), v, true);
 			}
 			}
+			{
+				const char* v = "failed";
+				int queryResult = element->QueryStringAttribute("not-attrib", &v);
+				XMLTest("Attribute: string default", false, queryResult == XML_SUCCESS);
+				queryResult = element->QueryStringAttribute("attrib", &v);
+				XMLTest("Attribute: string", (int)XML_SUCCESS, queryResult, true);
+				XMLTest("Attribute: string", "100", v);
+			}
 			XMLTest("Attribute: unsigned", unsigned(100), element->UnsignedAttribute("attrib"), true);
 			XMLTest("Attribute: unsigned", unsigned(100), element->UnsignedAttribute("attrib"), true);
 		}
 		}
 		{
 		{