Files correlati : omnia0.exe Ricompilazione Demo : [ ] Commento : Prima release Acqua Omnia git-svn-id: svn://10.65.10.50/trunk@11726 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef __XML_H
 | |
| #define __XML_H
 | |
| 
 | |
| #ifndef __ASSOC_H
 | |
| #include "assoc.h"
 | |
| #endif
 | |
| 
 | |
| class TXmlItem;
 | |
| 
 | |
| typedef bool (*XmlItemCallback)(TXmlItem& item, long jolly);
 | |
| 
 | |
| class TXmlItem : public TObject
 | |
| {
 | |
|   DECLARE_DYNAMIC_CLASS(TXmlItem);
 | |
| 
 | |
| 	TString m_strTag;
 | |
|   TString* m_strText;
 | |
| 	TAssoc_array* m_Attributes;
 | |
|   TArray* m_Children;
 | |
| 
 | |
| protected:
 | |
|   int GetWord(istream& input, TString& str) const;
 | |
|   int ReadTag(istream& input);
 | |
| 
 | |
|   TXmlItem& AddChild(TXmlItem* pItem);
 | |
| 
 | |
| public:
 | |
|   const TString& GetTag() const { return m_strTag; }
 | |
|   void SetTag(const char* strTag) { m_strTag = strTag; }
 | |
| 
 | |
|   const TString& GetText() const 
 | |
|   { 
 | |
|     if (m_strText != NULL)
 | |
|       return *m_strText;
 | |
|     return EMPTY_STRING; 
 | |
|   }
 | |
|   void SetText(const char* str) 
 | |
|   { 
 | |
|     if (m_strText == NULL)
 | |
|       m_strText = new TString(str); 
 | |
|     else
 | |
|       *m_strText = str;
 | |
|   }
 | |
| 
 | |
| 	TXmlItem& AddEnclosedText(const char* str);
 | |
|   bool GetEnclosedText(TString& str) const;
 | |
| 
 | |
|   TXmlItem& SetAttr(const char* strAttr, const char* strVal);
 | |
| 	const TString& GetAttr(const char* strAttr) const;
 | |
|   int GetIntAttr(const char* strAttr) const;
 | |
| 
 | |
|   TXmlItem& AddChild(const char* strTag);
 | |
| 	TXmlItem& AddSoapString(const char* name, const char* value, bool typized = false);
 | |
| 	TXmlItem& AddSoapInt(const char* name, int value, bool typized = false);
 | |
| 
 | |
|   int GetChildren() const;
 | |
|   TXmlItem* GetChild(size_t n) const;
 | |
|   void RemoveLastChild();
 | |
| 
 | |
|   void Destroy();
 | |
| 	bool Read(istream& input);
 | |
| 	void Write(ostream& output, int nTab) const;
 | |
|   void AsString(TString& str) const;
 | |
| 
 | |
| 	void Save(const char* strFilename) const;
 | |
| 
 | |
| 	TXmlItem* ForEach(XmlItemCallback cb, long jolly = 0);
 | |
|   TXmlItem* FindFirst(const char* strTag) const;
 | |
| 	
 | |
| 	TXmlItem();
 | |
| 	~TXmlItem();
 | |
| };
 | |
| 
 | |
| TXmlItem& operator<<(TXmlItem& item, const char* str);
 | |
| 
 | |
| //ostream& operator<<(ostream& outf, const char* str);
 | |
| //ostream& operator<<(ostream& outf, TString str);
 | |
| //istream& operator>>(istream& inf, TString& str);
 | |
| void Spaces(ostream& outf, int nSpaces);
 | |
| void WriteXmlString(ostream& outf, const char* str);
 | |
| int hex2int(const char* str);
 | |
| 
 | |
| #define endl "\r\n";
 | |
| 
 | |
| #endif
 | |
| 
 |