有點晚,但試試這個.....
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代碼上面的工作
這是否有幫助? https://stackoverflow.com/questions/28769495/how-to-derive-xml-element-name-from-an-attribute-value-of-a-class-using-annotati – dbc
不看這裏有一個簡單的方法做這件事。以上鍊接是最好的你會得到。它是一個恥辱,你不能添加像[XmlElement(「codelang *」)]的東西,即在元素名稱中使用通配符。 –