Merge pull request #27064 from ScholliYT/addObjectNameTo3mfExport

Mesh: Add object name attribute to 3MF export
This commit is contained in:
Chris Hennes
2026-02-08 03:22:56 -06:00
committed by GitHub
9 changed files with 136 additions and 23 deletions

View File

@@ -117,6 +117,44 @@ std::basic_string<XMLCh> XMLTools::toXMLString(const char* const fromTranscode)
return str;
}
/*!
* \brief Escape special XML characters in a string.
*
* Replaces XML special characters (&, <, >, ", ') with their entity equivalents
* (&amp;, &lt;, &gt;, &quot;, &apos;).
*
* \param input The string to escape
* \return The escaped string safe for use in XML content or attributes
*/
std::string XMLTools::escapeXml(const std::string& input)
{
std::string output;
output.reserve(input.size());
for (char ch : input) {
switch (ch) {
case '&':
output.append("&amp;");
break;
case '<':
output.append("&lt;");
break;
case '>':
output.append("&gt;");
break;
case '"':
output.append("&quot;");
break;
case '\'':
output.append("&apos;");
break;
default:
output.push_back(ch);
break;
}
}
return output;
}
void XMLTools::terminate()
{
transcoder.reset();

View File

@@ -47,6 +47,7 @@ class BaseExport XMLTools
public:
static std::string toStdString(const XMLCh* const toTranscode);
static std::basic_string<XMLCh> toXMLString(const char* const fromTranscode);
static std::string escapeXml(const std::string& input);
static void initialize();
static void terminate();