Patch level : 12.0 no-patch
Files correlati : Commento : xml : aggiunte getenclosedtext e setenclosedtext
This commit is contained in:
parent
67da2fd5ae
commit
8d1dd36e17
@ -150,10 +150,11 @@ TXmlItem& TXmlItem::SetAttr(const char* strAttr, const char* strVal)
|
|||||||
|
|
||||||
const TString& TXmlItem::GetAttr(const char* strAttr) const
|
const TString& TXmlItem::GetAttr(const char* strAttr) const
|
||||||
{
|
{
|
||||||
if (m_Attributes != NULL)
|
if (m_Attributes != nullptr)
|
||||||
{
|
{
|
||||||
const TXmlAttr* str = (const TXmlAttr*)m_Attributes->objptr(strAttr);
|
const TXmlAttr* str = (const TXmlAttr*)m_Attributes->objptr(strAttr);
|
||||||
if (str != NULL)
|
|
||||||
|
if (str != nullptr)
|
||||||
return *str;
|
return *str;
|
||||||
}
|
}
|
||||||
return EMPTY_STRING;
|
return EMPTY_STRING;
|
||||||
@ -448,17 +449,126 @@ bool TXmlItem::GetEnclosedText(TString& text) const
|
|||||||
return text.not_empty();
|
return text.not_empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
TXmlItem& TXmlItem::AddEnclosedText(const char* str)
|
bool TXmlItem::GetEnclosedText(const char* strAttr, TString & str) const
|
||||||
|
{
|
||||||
|
TXmlItem * item = FindFirstChild(strAttr); // ->FindFirst("");
|
||||||
|
|
||||||
|
if (item != nullptr)
|
||||||
|
return item->GetEnclosedText(str);
|
||||||
|
str.cut(0);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TXmlItem::GetEnclosedDate(const char* strAttr, TDate & d) const
|
||||||
|
{
|
||||||
|
TString s;
|
||||||
|
|
||||||
|
if (GetEnclosedText(strAttr, s))
|
||||||
|
{
|
||||||
|
s.strip_spaces();
|
||||||
|
d = TDate(s);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
d = NULLDATE;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TXmlItem::GetEnclosedInt(const char* strAttr, int & i) const
|
||||||
|
{
|
||||||
|
TString s;
|
||||||
|
|
||||||
|
if (GetEnclosedText(strAttr, s))
|
||||||
|
{
|
||||||
|
s.strip_spaces();
|
||||||
|
i = atoi(s);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
i = 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TXmlItem::GetEnclosedLong(const char* strAttr, long & l) const
|
||||||
|
{
|
||||||
|
TString s;
|
||||||
|
|
||||||
|
if (GetEnclosedText(strAttr, s))
|
||||||
|
{
|
||||||
|
s.strip_spaces();
|
||||||
|
l = atol(s);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
l = 0L;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TXmlItem::GetEnclosedReal(const char* strAttr, real & r) const
|
||||||
|
{
|
||||||
|
TString s;
|
||||||
|
|
||||||
|
if (GetEnclosedText(strAttr, s))
|
||||||
|
{
|
||||||
|
s.strip_spaces();
|
||||||
|
r = real(s);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
r = ZERO;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
TXmlItem & TXmlItem::AddEnclosedText(const char* str)
|
||||||
{
|
{
|
||||||
TXmlItem* item = FindFirst("");
|
TXmlItem* item = FindFirst("");
|
||||||
if (item == NULL)
|
if (item == nullptr)
|
||||||
item = &AddChild("");
|
item = &AddChild("");
|
||||||
if (item->m_strText == NULL)
|
if (item->m_strText == nullptr)
|
||||||
item->SetText(str);
|
item->SetText(str);
|
||||||
else
|
else
|
||||||
*item->m_strText << str;
|
*item->m_strText << str;
|
||||||
return *item;
|
return *item;
|
||||||
}
|
}
|
||||||
|
TXmlItem & TXmlItem::AddEnclosedText(const char* strAttr, const char * str)
|
||||||
|
{
|
||||||
|
TXmlItem* item = FindFirst(strAttr);
|
||||||
|
if (item == nullptr)
|
||||||
|
item = &AddChild(strAttr);
|
||||||
|
item->AddEnclosedText(str);
|
||||||
|
return *item;
|
||||||
|
}
|
||||||
|
|
||||||
|
TXmlItem & TXmlItem::AddEnclosedDate(const char* strAttr, const TDate d, const char* f)
|
||||||
|
{
|
||||||
|
TFormatted_date fd(d, f);
|
||||||
|
|
||||||
|
TXmlItem& item = AddEnclosedText(strAttr, fd.stringa());
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
TXmlItem & TXmlItem::AddEnclosedInt(const char* strAttr, const int i)
|
||||||
|
{
|
||||||
|
TString & s = get_tmp_string(128);
|
||||||
|
|
||||||
|
s << i;
|
||||||
|
TXmlItem& item = AddEnclosedText(strAttr, s);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
TXmlItem & TXmlItem::AddEnclosedLong(const char* strAttr, const long l)
|
||||||
|
{
|
||||||
|
TString & s = get_tmp_string(128);
|
||||||
|
|
||||||
|
s << l;
|
||||||
|
TXmlItem& item = AddEnclosedText(strAttr, s);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
TXmlItem & TXmlItem::AddEnclosedReal(const char* strAttr, const real r)
|
||||||
|
{
|
||||||
|
TString & s = get_tmp_string(128);
|
||||||
|
|
||||||
|
s << r;
|
||||||
|
TXmlItem& item = AddEnclosedText(strAttr, s);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
TXmlItem& operator<<(TXmlItem& item, const char* str)
|
TXmlItem& operator<<(TXmlItem& item, const char* str)
|
||||||
{
|
{
|
||||||
@ -600,11 +710,11 @@ TXmlItem* TXmlItem::FindFirstChild(const char* strTag) const
|
|||||||
if (c->GetTag() == strTag)
|
if (c->GetTag() == strTag)
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
return NULL;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
TXmlItem::TXmlItem()
|
TXmlItem::TXmlItem()
|
||||||
: m_strTag(15), m_strText(NULL), m_Attributes(NULL), m_Children(NULL)
|
: m_strTag(15), m_strText(nullptr), m_Attributes(nullptr), m_Children(nullptr)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
TXmlItem::~TXmlItem()
|
TXmlItem::~TXmlItem()
|
||||||
|
@ -42,7 +42,17 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
TXmlItem& AddEnclosedText(const char* str);
|
TXmlItem& AddEnclosedText(const char* str);
|
||||||
|
TXmlItem& AddEnclosedText(const char* strAttr, const char * str);
|
||||||
|
TXmlItem& AddEnclosedDate(const char* strAttr, const TDate d, const char* f = "1444-");
|
||||||
|
TXmlItem& AddEnclosedInt(const char* strAttr, const int i);
|
||||||
|
TXmlItem& AddEnclosedLong(const char* strAttr, const long l);
|
||||||
|
TXmlItem& AddEnclosedReal(const char* strAttr, const real r);
|
||||||
bool GetEnclosedText(TString& str) const;
|
bool GetEnclosedText(TString& str) const;
|
||||||
|
bool GetEnclosedText(const char* strAttr, TString & str) const;
|
||||||
|
bool GetEnclosedDate(const char* strAttr, TDate & d) const;
|
||||||
|
bool GetEnclosedInt(const char* strAttr, int & i) const;
|
||||||
|
bool GetEnclosedLong(const char* strAttr, long & l) const;
|
||||||
|
bool GetEnclosedReal(const char* strAttr, real & r) const;
|
||||||
|
|
||||||
TXmlItem& SetAttr(const char* strAttr, const char* strVal);
|
TXmlItem& SetAttr(const char* strAttr, const char* strVal);
|
||||||
const TString& GetAttr(const char* strAttr) const;
|
const TString& GetAttr(const char* strAttr) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user