删除转义序列'';从字符串转换为XmlDocument

本文关键字:转换 XmlDocument 字符串 转义序列 删除 | 更新日期: 2023-09-27 17:58:49

我有一个web服务,它返回一个struct对象,所以我得到如下XML字符串的响应。现在我需要将它加载到XmlDocument对象中,但我如何摆脱字符串中的转义序列。每个"的"''"导致错误。

<?xml version='"1.0'" encoding='"utf-8'"?>
<Quote xmlns:xsi='"http://www.w3.org/2001/XMLSchema-instance'" xmlns:xsd='"http://www.w3.org/2001/XMLSchema'" xmlns='"http://tempuri.org/'">
<price>19656</price>
</Quote>

删除转义序列'';从字符串转换为XmlDocument

使用Regex。Unescape方法。

String unescapedString = Regex.Unescape(textString);

您需要使用Regex。Unescape方法。

String unescapedString = Regex.Unescape(textString);

然而,因为Regex。Unescape无法取消转义"。根据文件,它执行以下操作:

通过从每个转义的字符中移除转义字符(")通过该方法。其中包括,*,+,?,|,{,[,(,),^,$,.,#,和空白字符。此外,Unescape方法右括号(])和右大括号(})字符。

那么Web服务返回的字符串中有实际的反斜杠?如果是这样的话,我想说你使用的网络服务有问题,但你应该能够通过这样做来解决它:

xmlStr = xmlStr.Replace("'''"", "'"");

您可以尝试在逐字字符串中进行转义

xmlStr= xmlStr.Contains("''") ? xmlStr.Replace("''", @"'"") : xmlStr;