对象到 xml 并在不同的字段中添加不同的前缀和命名空间

Posted

技术标签:

【中文标题】对象到 xml 并在不同的字段中添加不同的前缀和命名空间【英文标题】:object to xml and add different prefix and namespaces in different field 【发布时间】:2021-03-31 14:29:10 【问题描述】:
public class Item
         
          public string name get;set;
          public string code get;set;
        

Item item=new Itemname="bd",code="001"

我想将项目对象设置为 xml,如下例所示:

<Item>
    <p1:name url="https://t1.com"> bd</name>
    <p2:code url="https://t2.com">0001</code>
</Item>

【问题讨论】:

好的。 Xml序列化你了解多少?你有没有尝试过什么?那是有效的 XML 吗? 我只能序列化为xml。 【参考方案1】:

尝试以下:

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;
    

【讨论】:

以上是关于对象到 xml 并在不同的字段中添加不同的前缀和命名空间的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 不同并在不同字段上分组

如何将两个不同的对象添加到一个对象中

在 nifi tailFile 处理器中添加前缀或后缀

如何为每个循环发出不同的元组并在风暴螺栓的单个字段方法中声明?

如何在运行时添加 texdfields 并在 android jetpack compose 中管理这些文本字段值?

如何将两个光照贴图添加到共享相同材质的两个不同对象