如何解决对象到 xml 并在不同的字段中添加不同的前缀和命名空间
public class Item
{
public string name {get;set;}
public string code {get;set;}
}
Item item=new Item{name="bd",code="001"}
我想像下面的例子一样使项目对象成为xml:
<Item>
<p1:name url="https://t1.com"> bd</name>
<p2:code url="https://t2.com">0001</code>
</Item>
解决方法
尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
Item item = new Item()
{
name = new URL() { url = "https://t1.com",value = "bd" },code = new URL() { url = "https://t2.com",value = "0001" }
};
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(FILENAME,settings);
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add("p1","MyURL1");
namespaces.Add("p2","MyURL2");
XmlSerializer serializer = new XmlSerializer(typeof(Item));
serializer.Serialize(writer,item,namespaces);
}
}
public class Item
{
[XmlElement(Namespace = "MyURL1")]
public URL name { get; set; }
[XmlElement(Namespace = "MyURL2")]
public URL code { get; set; }
}
public class URL
{
[XmlAttribute()]
public string url { get; set;}
[XmlText]
public string value { get; set;}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。