diff options
author | Brad King <brad.king@kitware.com> | 2009-02-24 20:43:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-02-24 20:43:49 (GMT) |
commit | b5db18e72322862883e6d0695e3e0cc5826f39c9 (patch) | |
tree | 64ef6bac88f671a80e15dcf695b1b4c130e4d318 | |
parent | d033f0d2d15ddc84b446da0012b809f6cba1597f (diff) | |
download | CMake-b5db18e72322862883e6d0695e3e0cc5826f39c9.zip CMake-b5db18e72322862883e6d0695e3e0cc5826f39c9.tar.gz CMake-b5db18e72322862883e6d0695e3e0cc5826f39c9.tar.bz2 |
ENH: Added cmXMLParser::FindAttribute method
This method will help subclasses look for element attributes in their
StartElement methods.
-rw-r--r-- | Source/cmXMLParser.cxx | 17 | ||||
-rw-r--r-- | Source/cmXMLParser.h | 3 |
2 files changed, 20 insertions, 0 deletions
diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx index 09cc384..0f68cb6 100644 --- a/Source/cmXMLParser.cxx +++ b/Source/cmXMLParser.cxx @@ -181,6 +181,23 @@ int cmXMLParser::IsSpace(char c) } //---------------------------------------------------------------------------- +const char* cmXMLParser::FindAttribute(const char** atts, + const char* attribute) +{ + if(atts && attribute) + { + for(const char** a = atts; *a && *(a+1); a += 2) + { + if(strcmp(*a, attribute) == 0) + { + return *(a+1); + } + } + } + return 0; +} + +//---------------------------------------------------------------------------- void cmXMLParserStartElement(void* parser, const char *name, const char **atts) { diff --git a/Source/cmXMLParser.h b/Source/cmXMLParser.h index 68def9e..80b0503 100644 --- a/Source/cmXMLParser.h +++ b/Source/cmXMLParser.h @@ -105,6 +105,9 @@ protected: //! Send the given c-style string to the XML parser. int ParseBuffer(const char* buffer); + /** Helps subclasses search for attributes on elements. */ + static const char* FindAttribute(const char** atts, const char* attribute); + //! Callbacks for the expat friend void cmXMLParserStartElement(void*, const char*, const char**); friend void cmXMLParserEndElement(void*, const char*); |