如何使用Linq到XML将属性值从Xml获取到数组?

时间:2013-10-18 10:55:14

标签: asp.net xml linq arraylist linq-to-xml

嗨我想从一个带Linq到XML的xml文件中获取一个arraylist

这里是我的xml:

<?xml version="1.0" encoding="iso-8859-1"?>

<modules>
  <modul name=""></modul>
  <modul name="P1:"></modul>
  <modul name="AS5050:"></modul>
  <modul name="GMS4010:"></modul>
  <modul name="GMS4020:"></modul>
  <modul name="GMS4030A:"></modul>
  <modul name="gateway:"></modul>
  <modul name="view_only:"></modul>
</modules>

这里是我的代码:

private ArrayList GetModules() 
{
    XDocument x = XDocument.Load(Server.MapPath(@"~\App_Data\UGNX.xml"));
    ArrayList data = from item in x.Elements("modul") ///??? 
    return data; 
}

1 个答案:

答案 0 :(得分:2)

我怀疑你想要:

private List<string> GetModules() {
    return XDocument.Load(Server.MapPath(@"~\App_Data\UGNX.xml")
                    .Root               // Root element
                    .Elements("modul")  // Select child "modul" elements
                    .Attributes("name") // Select "names" attributes within them
                    .Select(attribute => (string) attribute) // Fetch the values
                    .ToList();          // Convert to a list of strings
}

强烈建议在此处使用通用集合,而不是ArrayList

确保您了解此解决方案的每一行,以便将来您可以自己提出类似的代码。