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

本文关键字:空间 XML 删除 元素 | 更新日期: 2023-09-27 18:17:57

我不太确定如何做到这一点,但我需要生成一个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; }
}

任何帮助都将是非常感激的:(

谢谢

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

您似乎正在使用两个不同的名称空间,在一个地方定义为http://www.mysite,在另一个地方定义为http://www.iwebcms.com。

我最终只是作为原始文本遍历文件并替换我需要的名称空间-讨厌但让我去....