diff options
| author | Edwin Mons <edwin.mons@isode.com> | 2019-02-07 12:35:02 (GMT) |
|---|---|---|
| committer | Edwin Mons <edwin.mons@isode.com> | 2019-02-07 12:50:49 (GMT) |
| commit | 2fba2e9743e680b76c070a3604f5d6b56eb44e49 (patch) | |
| tree | a0dc15670fa653a5e9f201319e2ad7fed3afb3df /Swiften/Serializer/XML/XMLElement.cpp | |
| parent | 256d1392b0d45ffeac44f764297ea31d65cb0229 (diff) | |
| download | swift-2fba2e9743e680b76c070a3604f5d6b56eb44e49.zip swift-2fba2e9743e680b76c070a3604f5d6b56eb44e49.tar.bz2 | |
Split out attribute escape routine
Test-Information:
Unit tests pass on Debian 9
Change-Id: I60f95816cfa48a619f83daac1d88e229bbe228ed
Diffstat (limited to 'Swiften/Serializer/XML/XMLElement.cpp')
| -rw-r--r-- | Swiften/Serializer/XML/XMLElement.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/Swiften/Serializer/XML/XMLElement.cpp b/Swiften/Serializer/XML/XMLElement.cpp index f2397ca..7515061 100644 --- a/Swiften/Serializer/XML/XMLElement.cpp +++ b/Swiften/Serializer/XML/XMLElement.cpp | |||
| @@ -39,14 +39,17 @@ std::string XMLElement::serialize() { | |||
| 39 | return result; | 39 | return result; |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | std::string XMLElement::escapeAttributeValue(std::string value) { | ||
| 43 | String::replaceAll(value, '&', "&"); | ||
| 44 | String::replaceAll(value, '<', "<"); | ||
| 45 | String::replaceAll(value, '>', ">"); | ||
| 46 | String::replaceAll(value, '\'', "'"); | ||
| 47 | String::replaceAll(value, '"', """); | ||
| 48 | return value; | ||
| 49 | } | ||
| 50 | |||
| 42 | void XMLElement::setAttribute(const std::string& attribute, const std::string& value) { | 51 | void XMLElement::setAttribute(const std::string& attribute, const std::string& value) { |
| 43 | std::string escapedValue(value); | 52 | attributes_[attribute] = escapeAttributeValue(value); |
| 44 | String::replaceAll(escapedValue, '&', "&"); | ||
| 45 | String::replaceAll(escapedValue, '<', "<"); | ||
| 46 | String::replaceAll(escapedValue, '>', ">"); | ||
| 47 | String::replaceAll(escapedValue, '\'', "'"); | ||
| 48 | String::replaceAll(escapedValue, '"', """); | ||
| 49 | attributes_[attribute] = escapedValue; | ||
| 50 | } | 53 | } |
| 51 | 54 | ||
| 52 | void XMLElement::addNode(std::shared_ptr<XMLNode> node) { | 55 | void XMLElement::addNode(std::shared_ptr<XMLNode> node) { |
Swift