使用 ToString 方法将 XDocument 转换为字符串后添加反斜杠“\”

Backslashes "\" are added after converting XDocument to string using ToString method

使用 .ToString(SaveOptions.DisableFormatting) 方法将 XDocument 转换为字符串后。标签属性中的双引号旁边添加了反斜杠。

我的 XML 使用 XDocument 构建的示例:

XNamespace xmlns = "http://www.w3.org/2001/10/synthesis";
            var xdec = new XDeclaration("1.0", "utf-8", "yes");
            XDocument xml = new XDocument(
                    xdec,
                    new XElement(
                        xmlns + "speak",
                        new XAttribute(XNamespace.Xml + "lang", "en")));

             var xmlString = xml.ToString(SaveOptions.DisableFormatting); // backslashes "\" are added

输出图像示例:

我该如何删除这些反斜杠?谢谢

此处的反斜杠表示双引号是字符串的一部分,并不表示字符串的结尾。 例如,如果您有:

var myFavouriteQuoteStatement = "My favourite quote is "I like bread"";

Visual studio 会将此行标记为错误,因为编译器会将 "My favourite quote is " 视为 myFavouriteQuoteStatement 变量中的字符串,而其余部分 I like bread"" 将被视为垃圾无法编译。

有效字符串为:

var myFavouriteQuoteStatement = "My favourite quote is \"I like bread\"";

您可以通过 Whosebug 在我的评论中突出显示它的方式来区分它们。