diff --git a/tools/gn/visual_studio_writer.cc b/tools/gn/visual_studio_writer.cc
index 76ebc56..aa01d82 100644
--- a/tools/gn/visual_studio_writer.cc
+++ b/tools/gn/visual_studio_writer.cc
@@ -37,41 +37,9 @@
 
 namespace {
 
-std::string EscapeString(const std::string& value) {
-  std::string result;
-  for (char c : value) {
-    switch (c) {
-      case '\n':
-        result += "&#10;";
-        break;
-      case '\r':
-        result += "&#13;";
-        break;
-      case '\t':
-        result += "&#9;";
-        break;
-      case '"':
-        result += "&quot;";
-        break;
-      case '<':
-        result += "&lt;";
-        break;
-      case '>':
-        result += "&gt;";
-        break;
-      case '&':
-        result += "&amp;";
-        break;
-      default:
-        result += c;
-    }
-  }
-  return result;
-}
-
 struct SemicolonSeparatedWriter {
   void operator()(const std::string& value, std::ostream& out) const {
-    out << EscapeString(value) + ';';
+    out << XmlEscape(value) + ';';
   }
 };
 
diff --git a/tools/gn/xml_element_writer.cc b/tools/gn/xml_element_writer.cc
index fcf34b2..bb0d232 100644
--- a/tools/gn/xml_element_writer.cc
+++ b/tools/gn/xml_element_writer.cc
@@ -81,3 +81,35 @@
 
   return out_;
 }
+
+std::string XmlEscape(const std::string& value) {
+  std::string result;
+  for (char c : value) {
+    switch (c) {
+      case '\n':
+        result += "&#10;";
+        break;
+      case '\r':
+        result += "&#13;";
+        break;
+      case '\t':
+        result += "&#9;";
+        break;
+      case '"':
+        result += "&quot;";
+        break;
+      case '<':
+        result += "&lt;";
+        break;
+      case '>':
+        result += "&gt;";
+        break;
+      case '&':
+        result += "&amp;";
+        break;
+      default:
+        result += c;
+    }
+  }
+  return result;
+}
diff --git a/tools/gn/xml_element_writer.h b/tools/gn/xml_element_writer.h
index 8a83df0..01346d2 100644
--- a/tools/gn/xml_element_writer.h
+++ b/tools/gn/xml_element_writer.h
@@ -120,4 +120,6 @@
       out_, tag, attribute_name, attribute_value_writer, indent_ + 2));
 }
 
+std::string XmlEscape(const std::string& value);
+
 #endif  // TOOLS_GN_XML_ELEMENT_WRITER_H_
diff --git a/tools/gn/xml_element_writer_unittest.cc b/tools/gn/xml_element_writer_unittest.cc
index 93dfd47..cc21c4b 100644
--- a/tools/gn/xml_element_writer_unittest.cc
+++ b/tools/gn/xml_element_writer_unittest.cc
@@ -84,3 +84,10 @@
   }
   EXPECT_EQ("<foo bar=\"baz\">Hello world!</foo>\n", out.str());
 }
+
+TEST(XmlElementWriter, TestXmlEscape) {
+  std::string input = "\r \n \t & < > \"";
+  std::string output = XmlEscape(input);
+  std::string expected = "&#13; &#10; &#9; &amp; &lt; &gt; &quot;";
+  EXPECT_EQ(expected, output);
+}
