2010-01-08 42 views

回答

1

您需要引用命名空間

例如

var document = XDocument.Load(...); 
XNamespace xmlns = "urn:yahoo:prods"; 

var linqtoxml = from feed in document.Descendants(xmlns + "Products") select feed; 
foreach (var p in linqtoxml) 
{ 
    System.Diagnostics.Debug.WriteLine(p); 
}  
1

問題的確是命名空間。這可能會解決您的問題。

var document = XDocument.Load(feedUrl); 

XPathNavigator navigator = document.CreateNavigator(); 
XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable); 
manager.AddNamespace("n", "urn:yahoo:prods"); 

var xProducts = document.XPathSelectElements(
    "/n:ProductSearch/n:Products/n:Product", manager 
); 

這些XPath的也可以工作:

var xProducts = document.XPathSelectElements("//n:Products/n:Product", manager); 
var xProducts = document.XPathSelectElements("//n:Product", manager);