在LINQ中查询简单的XDocument

0 xml linq linq-to-xml

我可能正在做一些真正愚蠢的事情,但我不能让这个工作:

var xmlQuery = from i in doc.Descendants("Item")
  select new TriggerItem()
  {
  CreatedDate = DateTime.Now,
  ItemIdentifier = i.Attribute("itemCode").Value,
  Name = i.Attribute("name").Value,
  ProductIdentifier = (i.Attribute("productCode") != null) ? i.Attribute("productCode").Value : null
  };
Run Code Online (Sandbox Code Playgroud)

doc是一个Xdocument对象,在调试时,我可以确认它已经加载了以下xml:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Items xmlns="http://mywebsite">
<Item itemCode="12345" productCode="" name="testing" categoryId="">
</Item>
</Items>
Run Code Online (Sandbox Code Playgroud)

所以xmlQuery.Count()shud返回1,作为一个项目,但它一直返回0!

iv也尝试过:

xmlQuery = from i in doc.Descendants("Items") 
Run Code Online (Sandbox Code Playgroud)

xmlQuery = from i in doc.Descendants("Item")
Run Code Online (Sandbox Code Playgroud)

即使没有创建新的TriggerItem对象,它也不会返回任何内容......任何想法?:'(

Tim*_*vis 7

你需要指定命名空间,比如....

XNamespace ns = XNamespace.Get("yourURI");
var qry = from i in doc.Descendants(ns + "Items")....
Run Code Online (Sandbox Code Playgroud)