如何解决在运行时基于对象属性值的动态XML元素名称
说我有一个类似
的结构 public class Data
{
public string ElementName { get; set; }
public string Content { get; set; }
}
public class XmlDoc
{
public List<Data> Elements { get; set; } = new List<Data>(new[] { new Data { ElementName = "A",Content = "CA"},nnew Data { ElementName = "B",Content = "CB" } })
}
有没有办法使序列化格式看起来像
<XmlDoc>
<A>CA</CA>
<B><CB></CB>
<XmlDoc>
?
要点是标签名称是从收集项目中动态生成的。
解决方法
根据您的描述,建议您尝试创建XmlDocument并根据您的XmlDoc类属性添加元素。
更多详细信息,您可以参考以下代码:
XmlDoc x1 = new XmlDoc();
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement(typeof(XmlDoc).Name);
foreach (var item in x1.Elements)
{
XmlElement newelement = doc.CreateElement(item.ElementName);
newelement.InnerText = item.Content;
root.AppendChild(newelement);
}
doc.AppendChild(root);
doc.Save(Console.Out);
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。