[英]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.