gpt4 book ai didi

c# - 避免 XML 转义双引号

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:30 24 4
gpt4 key购买 nike

我目前正在尝试将一个类序列化为 XML 以发布到 php 网络服务。

每当我使用 XMLSerializer 进行正常序列化时,XML 声明总是出现在 XML 文档的第一行(类似于 <?xml ....?> )。我测试了 XML 但无法使其正常工作,因为端点不接受 XML 声明,我对此无能为力。老实说,我不熟悉 C# 中的 XML 序列化。

因此,我使用 XMLWriter 来执行以下操作:-

private string SerializeClassToString(GetRiskReport value)
{
var emptyNS = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
var ser = new XmlSerializer(value.GetType());
var settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;

using (var stream = new StringWriter())
{
using (var writer = XmlWriter.Create(stream, settings))
{
ser.Serialize(writer, value, emptyNS);
return stream.ToString();
}
}
}

命名空间的结果是

<GetRiskReport FCRA=\"false\" ReturnResultsOnly=\"false\" Monitoring=\"false\">

...我可以省略 XML 声明,但是我遇到了 2 个新问题。

我得到了 \r\n对于新行,我已经转义了双引号,例如 ReturnResultsOnly=\"false\" Monitoring=\"false\"端点也无法处理。

我想问的是,有谁能告诉我如何更改 XmlWriterSetting 以省略 XML 声明,避免 \r\n并避免转义双引号 \"

提前感谢您的建议。

西蒙

最佳答案

尝试以下设置

settings.NewLineHandling = NewLineHandling.None;
settings.CheckCharacters = false;

关于c# - 避免 XML 转义双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com