mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
.
This commit is contained in:
@ -135,56 +135,37 @@ namespace XMLTools
|
||||
}
|
||||
void XMLElement::RemoveChild( const XMLElement& element )
|
||||
{
|
||||
m_Elements.remove( element );
|
||||
}
|
||||
bool XMLElement::FindChild( const XMLElement& element )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
for (ElementsIteratorConst iter = m_Elements.begin(); iter != m_Elements.end(); iter++)
|
||||
{
|
||||
if ( *iter == element )
|
||||
if (*iter == element)
|
||||
{
|
||||
result = true;
|
||||
|
||||
m_Elements.erase(iter);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
bool XMLElement::FindChildByName( const std::wstring & elementName ) const
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for ( ElementsIteratorConst iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
if ( iter->m_Name == std::wstring( elementName ) )
|
||||
{
|
||||
result = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
bool XMLElement::RemoveChildByName( const std::wstring& elementName )
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
for (ElementsIteratorConst iter = m_Elements.begin(); iter != m_Elements.end(); iter++)
|
||||
{
|
||||
if (iter->m_Name == elementName)
|
||||
{
|
||||
result = true;
|
||||
m_Elements.erase(iter);
|
||||
break;
|
||||
}
|
||||
}
|
||||
for ( ElementsIterator iter = m_Elements.begin(); iter != m_Elements.end(); iter++ )
|
||||
{
|
||||
if ( iter->m_Name == elementName )
|
||||
{
|
||||
m_Elements.erase( iter );
|
||||
|
||||
result = true;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
bool XMLElement::operator == ( const XMLElement& element ) const
|
||||
|
||||
@ -32,8 +32,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <list>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
@ -73,13 +73,7 @@ namespace XMLTools
|
||||
|
||||
void SetValue( const std::wstring & value );
|
||||
std::wstring GetName() const;
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetValue() const;
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetXMLString();
|
||||
};
|
||||
|
||||
@ -95,17 +89,19 @@ namespace XMLTools
|
||||
typedef std::pair< std::wstring, std::wstring> AttributeValuePair;
|
||||
|
||||
private:
|
||||
std::wstring m_Name;
|
||||
std::wstring m_ElementText;
|
||||
std::unordered_map<std::wstring, std::wstring> m_AttributeMap;
|
||||
std::unordered_map<std::wstring, int> m_ChildMap; //for uniq
|
||||
std::list<XMLElement> m_Elements;
|
||||
std::wstring m_Name;
|
||||
std::wstring m_ElementText;
|
||||
|
||||
typedef std::list<XMLElement>::iterator ElementsIterator;
|
||||
typedef std::list<XMLElement>::const_iterator ElementsIteratorConst;
|
||||
std::map<std::wstring, std::wstring> m_AttributeMap;
|
||||
std::map<std::wstring, int> m_ChildMap; //for uniq
|
||||
|
||||
typedef std::unordered_map<std::wstring, std::wstring>::iterator AttMapIterator;
|
||||
typedef std::unordered_map<std::wstring, std::wstring>::const_iterator AttMapIteratorConst;
|
||||
std::vector<XMLElement> m_Elements;
|
||||
|
||||
typedef std::vector<XMLElement>::iterator ElementsIterator;
|
||||
typedef std::vector<XMLElement>::const_iterator ElementsIteratorConst;
|
||||
|
||||
typedef std::map<std::wstring, std::wstring>::iterator AttMapIterator;
|
||||
typedef std::map<std::wstring, std::wstring>::const_iterator AttMapIteratorConst;
|
||||
|
||||
public:
|
||||
XMLElement();
|
||||
@ -123,28 +119,14 @@ namespace XMLTools
|
||||
void AppendChild( XMLElementPtr element, bool uniq = false);
|
||||
|
||||
void RemoveChild( const XMLElement& element );
|
||||
|
||||
bool FindChild( const XMLElement& element );
|
||||
bool FindChildByName( const std::wstring & elementName ) const;
|
||||
|
||||
bool RemoveChildByName( const std::wstring& elementName );
|
||||
|
||||
bool operator == ( const XMLElement& element ) const;
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetName() const;
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
std::wstring GetXMLString();
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
unsigned int GetAttributeCount() const;
|
||||
|
||||
/*========================================================================================================*/
|
||||
|
||||
unsigned int GetChildCount() const;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user