【问题标题】:Creating an XML Element with <Element behavior = "replace"> in C#在 C# 中使用 <Element behavior = "replace"> 创建 XML 元素
【发布时间】:2016-09-15 00:01:44
【问题描述】:

我正在尝试重新创建一个 xml,其结果应如下所示:

<names>
    <legalName behavior="replace">
      <firstName>Value</firstName>
      <surName>Value</surName>
      <fullName>Value</fullName>
      <effDate>Value</effDate>
    </legalName>
  </names>

我有一个如下所示的属性列表:

public class Names
{

    [XmlElement("legalName")]
    public LegalName LegalName { get; set; }
}

public class LegalName
{
    [XmlElement("firstName")]
    public string FirstName { get; set; }

    [XmlElement("surName")]
    public string SurName { get; set; }

    [XmlElement("fullName")]
    public string FullName { get; set; }

    [XmlElement("effDate")]
    public string EffDate { get; set; }
}

还有逻辑:

foreach (var people in model.Peoples)
        {
            exportResult.Persons.Person.Add(new Person
            {

                Names = new Names()
                {
                    LegalName = new LegalName()
                    {
                        FirstName = people.LegalNameFirstName,
                        SurName = people.LegalNameSurName,
                        FullName = people.LegalNameFullName,
                        EffDate = people.LegalNameEffectiveDate
                    }
                }
             }
         }

     XmlSerializer xsSubmit = new XmlSerializer(typeof(ExportResult));
        StringWriter sww = new Utf8StringWrite();
        var xml = string.Empty; // Your XML
        using (XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings {Encoding = Encoding.UTF8}))
        {
            xsSubmit.Serialize(writer, exportResult);
            xml = sww.ToString();
        }
        return xml;

我想知道如何创建这个元素:

<legalName behavior="replace">

我应该更改属性类中的 XmlElement 吗?类似于:

public class Names
 {

[XmlElement("legalName"), XmlAttribute("behavior =\"replace\"")]
public LegalName LegalName { get; set; }
 }

如何使用 behavior="replace" 创建 legalName 元素?

【问题讨论】:

    标签: c# .net xml


    【解决方案1】:

    要将属性添加为属性,您需要将 XmlAttribute 属性添加到其父级中的属性(类似于添加子元素)。所以在你的情况下:

    public class Names
    {
        [XmlElement("legalName")]
        public LegalName LegalName { get; set; }
    }
    
    public class LegalName
    {
        [XmlElement("firstName")]
        public string FirstName { get; set; }
    
        [XmlElement("surName")]
        public string SurName { get; set; }
    
        [XmlElement("fullName")]
        public string FullName { get; set; }
    
        [XmlElement("effDate")]
        public string EffDate { get; set; }
    
        [XmlAttribute("behavior")]
        public string Behavior { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 2018-04-12
      • 2014-03-12
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多