c95157e55e
Files correlati : Omnia0.exe Ricompilazione Demo : [ ] Commento : Prima versione del traduttore universale git-svn-id: svn://10.65.10.50/trunk@11690 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:
|
|
bool 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
|
|
|