我的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;
但显然我错过了一些东西。我做错了什么?
答案 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命名空间的更多信息。