【问题标题】:Remove XML namespace from child element从子元素中移除 XML 命名空间
【发布时间】:2014-08-14 17:34:40
【问题描述】:

我不太清楚如何做到这一点,但我需要生成一个 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")] 公共声明者声明者 { 获取;放; }

[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; }
}

任何帮助将不胜感激:(

谢谢

【问题讨论】:

    标签: c# xml xml-serialization


    【解决方案1】:

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

    【讨论】:

    • 抱歉,由于某种原因,我不让我再次使用 mysite - 我会调整!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2010-09-29
      • 1970-01-01
      相关资源
      最近更新 更多