summaryrefslogtreecommitdiff
path: root/core/fxcrt/xml/cfx_xmlelement.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fxcrt/xml/cfx_xmlelement.h')
-rw-r--r--core/fxcrt/xml/cfx_xmlelement.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/core/fxcrt/xml/cfx_xmlelement.h b/core/fxcrt/xml/cfx_xmlelement.h
index f713114eb7..f8533a1445 100644
--- a/core/fxcrt/xml/cfx_xmlelement.h
+++ b/core/fxcrt/xml/cfx_xmlelement.h
@@ -7,13 +7,14 @@
#ifndef CORE_FXCRT_XML_CFX_XMLELEMENT_H_
#define CORE_FXCRT_XML_CFX_XMLELEMENT_H_
+#include <map>
#include <memory>
#include <vector>
#include "core/fxcrt/fx_string.h"
-#include "core/fxcrt/xml/cfx_xmlattributenode.h"
+#include "core/fxcrt/xml/cfx_xmlnode.h"
-class CFX_XMLElement : public CFX_XMLAttributeNode {
+class CFX_XMLElement : public CFX_XMLNode {
public:
explicit CFX_XMLElement(const WideString& wsTag);
~CFX_XMLElement() override;
@@ -23,6 +24,17 @@ class CFX_XMLElement : public CFX_XMLAttributeNode {
std::unique_ptr<CFX_XMLNode> Clone() override;
void Save(const RetainPtr<CFX_SeekableStreamProxy>& pXMLStream) override;
+ WideString GetName() const { return name_; }
+
+ const std::map<WideString, WideString>& GetAttributes() const {
+ return attrs_;
+ }
+ bool HasAttribute(const WideString& name) const;
+ void SetAttribute(const WideString& name, const WideString& value);
+ WideString GetAttribute(const WideString& name) const;
+
+ void RemoveAttribute(const WideString& name);
+
CFX_XMLElement* GetFirstChildNamed(const WideStringView& name) const;
CFX_XMLElement* GetNthChildNamed(const WideStringView& name,
size_t idx) const;
@@ -33,6 +45,12 @@ class CFX_XMLElement : public CFX_XMLAttributeNode {
WideString GetTextData() const;
void SetTextData(const WideString& wsText);
+
+ private:
+ WideString AttributeToString(const WideString& name, const WideString& value);
+
+ WideString name_;
+ std::map<WideString, WideString> attrs_;
};
#endif // CORE_FXCRT_XML_CFX_XMLELEMENT_H_