簡體   English   中英

如何使用XmlSerializer動態序列化XML

[英]How to serialise XML dynamically with XmlSerializer

這是我的XML結構:

<codelang1>
       <prox>prox dans la langue</prox>
       <libelle>libellé dans la langue</libelle>
       <descriptif>descriptif dans la langue</descriptif>
</codelang1>
<codelang2>
       <prox>prox dans la langue</prox>
       <libelle>libellé dans la langue</libelle>
       <descriptif>descriptif dans la langue</descriptif>
</codelang2>
...
<codelang...n>
       <libelle></libelle>
       ....
</codelang...n>

如何使用類c#序列化此XML? Codelang更改。

有點晚,但是嘗試這個.....

用途

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

班級

public class Codelang
{
    public string prox { get; set; }
    public string libelle { get; set; }
    public string descriptif { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        string xmlfilepath = @"xml.xml";
        XDocument xmlsrcdoc = XDocument.Load(xmlfilepath);
        List<Codelang> lstCodelang = new List<Codelang>();

        try
        {
            lstCodelang = xmlsrcdoc.Descendants()
                                       .Elements("prox")
                                       .Select(el => FromXElement<Codelang>(el.Parent))
                                       .ToList();

        }
        catch (Exception)
        {

            throw;
        }
    }

    public static T FromXElement<T>(XElement element) where T : class, new()
    {
        var typeOfT = typeof(T);
        T value = new T();
        foreach (var subElement in element.Elements())
        {
            var prop = typeOfT.GetProperty(subElement.Name.LocalName);
            if (prop != null)
            {
                prop.SetValue(value, subElement.Value);
            }
        }
        return value;
    }
}

XML格式

<root>
<codelang1>
       <prox>prox dans la langue 1</prox>
       <libelle>libellé dans la langue</libelle>
       <descriptif>descriptif dans la langue</descriptif>
</codelang1>
<codelang2>
       <prox>prox dans la langue 2</prox>
       <libelle>libellé dans la langue</libelle>
       <descriptif>descriptif dans la langue</descriptif>
</codelang2>
<codelang3>
       <prox>prox dans la langue 3</prox>
       <libelle>libellé dans la langue</libelle>
       <descriptif>descriptif dans la langue</descriptif>
</codelang3>
</root>

我正在從名為xml.xml的應用程序構建文件夾中的文件中將XML讀取為字符串...您將需要從其他位置獲取XML字符串或創建xml.xml文件並為上述代碼保存XML上班

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM