我有一个列,其数据包含斜杠以表示UNC路径。
在包含此数据的数据集上调用GetXml时,例如:
Item Test\ABC123
当渲染输出时,会添加额外的斜杠:
Item Test\\ABC123
我已尝试过字符串替换,但它们不起作用(我知道它们是不可变的,我使用的是单独的变量)。
string returnXml = string.Empty;
if (ds.Tables.Count > 0)
{
ds.Namespace = "http://mynamespacehere";
returnXml = ds.GetXml().Replace(@"\\", @"\");
}
return returnXml;
双斜线持续存在并导致下游另一个应用程序出现问题。如何可靠地删除它们?
感谢。
编辑:这是堆栈中的下一个将字符串传递给Web服务的函数。变量orderXml是放在这些标题中的内容:
string returnMsg;
const string strSoapMessage = @"
<soapenv:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:sc=""http://mycompany.com/xsd/sc_slx"">
<soapenv:Header/>
<soapenv:Body>
<sc:submitSECustomerOrder soapenv:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"">
<input xsi:type=""xsd:string"">
<![CDATA[
{0}
]]>
</input>
</sc:submitSECustomerOrder>
</soapenv:Body>
</soapenv:Envelope>
";
string soapRequestXml = string.Format(strSoapMessage, orderXml);
var req = (HttpWebRequest) WebRequest.Create(new Uri(ConfigurationManager.AppSettings.Get("osmURI")));
req.ContentType = "text/xml; charset=utf-8";
req.Method = "POST";
req.Accept = "text/xml";
req.Headers.Add("SOAPAction", ConfigurationManager.AppSettings.Get("osmSoapAction"));