从xml文件中提取值,简单示例

时间:2014-10-31 19:59:28

标签: c# .net xml

我的xml文件的结构

<?xml version="1.0" encoding="utf-8"?>
<ItemsToProcess xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Item>somevalue1</Item>
  <Item>somevalue2</Item>
</ItemsToProcess>

我试图提取像这样的值

 XElement elem = XElement.Load(filename);
 var items = from c in elem.Descendants("ItemsToProcess")                     
             select new ItemToProcess
             {
                 ItemValue = c.Element("Item").Value;
             };
             return items;

但显然我错过了一些东西。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您有一个需要指定的xml命名空间。如果您需要Item个元素,您可以使用:

XNamespace ns = "http://www.w3.org/2001/XMLSchema-instance";
var items = elem.Descendants(ns + "Item")
           .Select(x => new ItemToProces { ItemValue = x.Value });                    

请参阅this以查找有关xml命名空间的更多信息。