首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从操作结果中删除XML命名空间

从操作结果中删除XML命名空间
EN

Stack Overflow用户
提问于 2016-07-22 17:14:23
回答 1查看 1.3K关注 0票数 1

使用Web和XML,当我返回.NET结果时,会得到以下内容:

代码语言:javascript
复制
    <Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Response>
        <Status>0</Status>
    </Response>
</Test>

如何删除名称空间?

这是我的startup.cs文件的一部分

代码语言:javascript
复制
 services
            .AddMvc(config =>
            {
                // Add XML Content Negotiation
                config.RespectBrowserAcceptHeader = true;
                config.InputFormatters.Add(new XmlSerializerInputFormatter());
                config.OutputFormatters.Add(new XmlSerializerOutputFormatter(new XmlWriterSettings
                {
                    OmitXmlDeclaration = true,

                }));
            })
            .AddXmlDataContractSerializerFormatters()
            .AddXmlSerializerFormatters()
            .AddMvcOptions(opt => opt.FormatterMappings.SetMediaTypeMappingForFormat("xml", new MediaTypeHeaderValue("application/xml")));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-22 21:53:20

XmlSerializerDataContractSerializer格式化程序都会查找application/xmltext/xmlContent-TypeAccept头值。因此,如果注册两个第一个格式化程序,那么它们中只有一个格式化程序可能会生效。

如果您想要支持XmlSerializer,那么只注册那个格式化程序,如果出于某种原因要同时支持这两种格式化程序,请确保更改它们所寻找的内容类型。示例: application/xml-dcs,text/xml-dcs,application/xml-xmlser,text/xml-ser

在上述情况下,DataContractSerializerOutputFormatter可能正在写出响应,因此您没有看到它生效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38532032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档