首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从XML根元素中删除命名空间?

如何从XML根元素中删除命名空间?
EN

Stack Overflow用户
提问于 2010-09-13 17:17:22
回答 1查看 10.7K关注 0票数 6

有没有一种简单的方法可以从XML根元素中删除名称空间。我已经尝试过

代码语言:javascript
复制
[XmlRootAttribute("MCP", Namespace = "", IsNullable = false)]    

在可序列化类上。但是没有用。仍然得到相同的结果。

示例类

代码语言:javascript
复制
[Serializable]
[XmlRootAttribute("MCP", Namespace = "", IsNullable = false)]    
public class BINDRequest
{
    public BINDRequest()
    {

    }
    [XmlAttribute]
    public string CLIENT_REQUEST_ID { get; set; }

    public BINDRequestBody BIND { get; set; }

}

结果xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<MCP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" CLIENT_REQUEST_ID="1">
  <BIND CLIENT_ID="test" PASSWORD="test" />
</MCP>

我不明白,那么在XmlRootAttribute中指定名称空间有什么用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-13 17:26:20

试试这个:

代码语言:javascript
复制
public class BINDRequest
{
    [XmlAttribute]
    public string CLIENT_REQUEST_ID { get; set; }
}

class Program
{
    static void Main()
    {
        var request = new BINDRequest
        {
            CLIENT_REQUEST_ID = "123"
        };
        var serializer = new XmlSerializer(request.GetType());
        var xmlnsEmpty = new XmlSerializerNamespaces();
        xmlnsEmpty.Add("", "");
        using (var writer = XmlWriter.Create("result.xml"))
        {
            serializer.Serialize(writer, request, xmlnsEmpty);
        }
    }
}
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3699084

复制
相关文章

相似问题

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