From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/xml/XMLNode.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Src/xml/XMLNode.h (limited to 'Src/xml/XMLNode.h') diff --git a/Src/xml/XMLNode.h b/Src/xml/XMLNode.h new file mode 100644 index 00000000..33779a74 --- /dev/null +++ b/Src/xml/XMLNode.h @@ -0,0 +1,45 @@ +#pragma once + +#include +#include "../nu/Alias.h" +#include +#include +class MapUnicodeComp +{ +public: + + // CSTR_LESS_THAN 1 // string 1 less than string 2 + // CSTR_EQUAL 2 // string 1 equal to string 2 + // CSTR_GREATER_THAN 3 // string 1 greater than string 2 + bool operator()(const wchar_t* str1, const wchar_t* str2) const + { + return (CompareStringW(MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT), 0, str1, -1, str2, -1)-2) == CSTR_LESS_THAN; + } +}; + +class XMLNode +{ +public: + typedef std::map PropMap; + typedef std::vector NodeList; + typedef std::map NodeMap; + + XMLNode(); + ~XMLNode(); + const XMLNode *Get(const wchar_t *) const; + const NodeList *GetList(const wchar_t *) const; + const bool Present(const wchar_t *) const; + void SetProperty(const wchar_t *prop, const wchar_t *value); + const wchar_t *GetProperty(const wchar_t *prop) const; + const wchar_t *GetContent() const; + void SetContent_Own(wchar_t *new_content); + void AppendContent(wchar_t *append); + void AddNode(const wchar_t *name, XMLNode *new_node); + XMLNode *parent; + +private: + PropMap properties; + wchar_t *content; + size_t content_len; // number of characters in curtext, not including null terminator + NodeMap nodes; +}; \ No newline at end of file -- cgit