18 void XMLMethods::registerConstants(
MinitScript* minitScript) {
32 { .type = MinitScript::TYPE_STRING, .name =
"name", .optional =
false, .reference =
false, .nullable =
false },
33 { .type = MinitScript::TYPE_MAP, .name =
"attributes", .optional =
true, .reference =
false, .nullable =
false },
34 { .type = MinitScript::TYPE_STRING, .name =
"innerXML", .optional =
true, .reference =
false, .nullable =
false },
36 MinitScript::TYPE_STRING
38 minitScript(minitScript) {}
39 const string getMethodName()
override {
40 return "xml.createTag";
45 if ((arguments.size() == 1 || arguments.size() == 2 || arguments.size() == 3) &&
46 MinitScript::getStringValue(arguments, 0, name) ==
true &&
47 (arguments.size() == 1 || arguments[1].getType() == MinitScript::TYPE_MAP) &&
48 MinitScript::getStringValue(arguments, 2, innerXML,
true) ==
true) {
49 auto mapPtr = arguments[1].getMapPointer();
52 if (mapPtr !=
nullptr && mapPtr->empty() ==
false) {
53 for(
const auto& [mapEntryName, mapEntryValue]: *mapPtr) {
54 xml+=
" " + mapEntryName +
"=\"" + escape(mapEntryValue->getValueAsString()) +
"\"";
57 if (innerXML.empty() ==
true) {
60 xml+=
">" + innerXML +
"</" + name +
">";
72 inline const string XMLMethods::escape(
const string& str) {
#define MINITSCRIPT_METHODUSAGE_COMPLAIN(methodName)
void setValue(const Variable &variable)
Set value from given variable into variable.
void registerMethod(Method *method)
Register method.
MinitScript script xml methods.