BCX*_*eme 1 c# xml linq silverlight visual-studio-2010
Visual Studio 2010,Silverlight 4和C#.我将以下数据存储在XML文件中:
<root>
<element>TextHere</element>
<element>TextHere</element>
<element>TextHere</element>
</root>
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码.
XDocument xmlDoc = XDocument.Load("XMLDocument.xml");
var ElementsList = from Elements in xmlDoc.Descendants("root")
select new
{
ElementContent = Elements.Element("Element").Value,
};
Run Code Online (Sandbox Code Playgroud)
此代码仅将第一个元素放在列表中,而将所有其他元素保留在列表中.如何重写此代码以便它将捕获XML文件中名为"element"的所有元素?
这样做:
XDocument xmlDoc = XDocument.Load("XMLDocument.xml");
var ElementsList = from Elements in xmlDoc.Descendants("element")
select new
{
ElementContent = Elements.Value
};
Run Code Online (Sandbox Code Playgroud)
或者用点符号简洁一点:
var ElementsList = xmlDoc.Descendants("element")
.Select(x => new { ElementContent = x.Value });
Run Code Online (Sandbox Code Playgroud)
但是请注意,在此之后您只有一个元素的枚举,如果您想要一个列表(如您的变量名所示),您可以.ToList()在选择后添加一个:
var ElementsList = xmlDoc.Descendants("element")
.Select(x => new { ElementContent = x.Value })
.ToList();
Run Code Online (Sandbox Code Playgroud)
这个列表将包含具有ElementContent属性的匿名类型的3个元素(基于您的示例XML.).如果你不需要那个属性(我认为你不需要),这是一个只返回字符串列表的简化版本:
var ElementsList = xmlDoc.Descendants("element")
.Select(x => x.Value)
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8023 次 |
| 最近记录: |