From: Markus R. <rol...@us...> - 2006-02-18 19:34:08
|
Update of /cvsroot/simspark/simspark/spark/utility/tinyxml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8455 Modified Files: Makefile.am Added Files: xmlfunctions.cpp xmlfunctions.h Log Message: - implemented some support functions for the tinyXML parser --- NEW FILE: xmlfunctions.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: xmlfunctions.h,v 1.1 2006/02/18 19:33:59 rollmark Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef XMLFUNCTIONS_H #define XMLFUNCTIONS_H #include <string> class TiXmlElement; class TiXmlNode; extern void SetXMLAttribute(TiXmlElement& element, const std::string& name, const std::string& value); extern void SetXMLAttribute(TiXmlElement& element, const std::string& name, int value); extern void SetXMLDoubleAttribute(TiXmlElement& element, const std::string& name, double value); extern bool GetXMLAttribute(const TiXmlElement* element, const std::string& attrName, std::string& str); extern bool GetXMLAttribute(const TiXmlElement* element, const std::string& attrName, int& i); extern bool GetXMLAttribute(const TiXmlElement* element, const std::string& attrName, double& d); extern bool GetXMLAttribute(const TiXmlElement* element, const std::string& attrName, float& f); extern std::string GetXMLValue(const TiXmlNode* node); extern TiXmlElement* GetFirstChild(TiXmlNode* node, const std::string& type); extern TiXmlElement* IterateChildren(TiXmlNode* node, const std::string& type); extern std::string GetXMLPath(TiXmlNode* node); #endif // XMLFUNCTIONS_H Index: Makefile.am =================================================================== RCS file: /cvsroot/simspark/simspark/spark/utility/tinyxml/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Makefile.am 24 Jan 2006 19:14:54 -0000 1.1 --- Makefile.am 18 Feb 2006 19:33:59 -0000 1.2 *************** *** 5,9 **** tinyxml.cpp\ tinyxmlerror.cpp\ ! tinyxmlparser.cpp --- 5,11 ---- tinyxml.cpp\ tinyxmlerror.cpp\ ! tinyxmlparser.cpp\ ! xmlfunctions.cpp ! --- NEW FILE: xmlfunctions.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: xmlfunctions.cpp,v 1.1 2006/02/18 19:33:59 rollmark Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "xmlfunctions.h" #include "tinyxml.h" using namespace std; extern void SetXMLAttribute(TiXmlElement& element, const string& name, const string& value) { element.SetAttribute(name.c_str(), value.c_str()); } extern void SetXMLAttribute(TiXmlElement& element, const string& name, int value) { element.SetAttribute(name.c_str(), value); } extern void SetXMLDoubleAttribute(TiXmlElement& element, const string& name, double value) { element.SetDoubleAttribute(name.c_str(),value); } extern bool GetXMLAttribute(const TiXmlElement* element, const string& attrName, string& str) { const char* attr = element->Attribute(attrName.c_str()); if (attr == 0) { return false; } str = attr; return true; } extern bool GetXMLAttribute(const TiXmlElement* element, const string& attrName, int& i) { const char* attr = element->Attribute(attrName.c_str(),&i); if (attr == 0) { return false; } return true; } extern bool GetXMLAttribute(const TiXmlElement* element, const std::string& attrName, float& f) { double d; bool ok = GetXMLAttribute(element, attrName, d); f = d; return ok; } extern bool GetXMLAttribute(const TiXmlElement* element, const string& attrName, double& d) { const char* attr = element->Attribute(attrName.c_str(),&d); if (attr == 0) { return false; } return true; } extern string GetXMLValue(const TiXmlNode* node) { if (node == 0) { return ""; } return node->Value(); } extern TiXmlElement* GetFirstChild(TiXmlNode* node, const string& type) { TiXmlNode* childNode = node->FirstChild(type.c_str()); if ( (childNode == 0) || (childNode->Type() != TiXmlNode::ELEMENT) ) { return 0; } return static_cast<TiXmlElement*>(childNode); } extern TiXmlElement* IterateChildren(TiXmlNode* node, const string& type) { TiXmlNode* childNode = node->Parent()->IterateChildren(type.c_str(),node); if ( (childNode == 0) || (childNode->Type() != TiXmlNode::ELEMENT) ) { return 0; } return static_cast<TiXmlElement*>(childNode); } extern string GetXMLPath(TiXmlNode* node) { if (node == 0) { return ""; } return GetXMLPath(node->Parent()) + "/" + node->Value(); } |