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
 | 
						|
 |