从子元素中删除XML命名空间

时间:2014-08-14 17:34:40

标签: c# xml xml-serialization

我不太确定如何做到这一点,但我需要生成一个excel文件,如下所示

<abc: Declarant>
<Type>Test</Type>
<ReferenceNo>TESTREF</ReferenceNo>
<Provider>Me</Provider>
</abc: Declarant>

请注意命名空间仅在更高级别上作为前缀。无论使用或不使用名称空间前缀,我都没有问题。但似乎无法使用它。

继承序列化之前我所拥有的东西

XmlSerializer x = new XmlSerializer(t.GetType());
            System.IO.StreamWriter file = new System.IO.StreamWriter(
            path);
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
            ns.Add("abc", "http://www.iwebcms.com");

            x.Serialize(file, t,ns);

和声明如下

[XmlElement(ElementName =“Declarant”,Namespace =“http://www.iwebcms.com”)]         公开声明声明{get;组; }

[Serializable()]
    public class Declarant
    {
        [XmlElement(ElementName = "Type")]
        public string Type { get; set; }

        [XmlElement(ElementName = "ReferenceNo")]
        public string ReferenceNo { get; set; }

        [XmlElement(ElementName = "Provider")]
        public string Provider { get; set; }
}

非常感谢任何帮助:(

由于

2 个答案:

答案 0 :(得分:0)

您似乎正在使用两个不同的命名空间,在一个位置将其定义为http://www.mysite,另一个位置定义为http://www.iwebcms.com。确保您在任何地方使用正确的命名空间。

答案 1 :(得分:0)

我最后只是将文件作为原始文本循环并替换了我需要的命名空间 - 讨厌但是让我走了......