这是我的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改变了。
答案 0 :(得分:0)
迟到但试试这个......
Usings
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上面的代码工作