XPath и Linq-to-XML (XEelement) обычно не совпадают - Linq-to-XML использует свой собственный подход для обхода XML-документов.
В вашем случае вы сможете сделатьчто-то вроде:
XDocument doc = XDocument.Load("http://www.quillarts.com/Test/Feed2.xml");
foreach(XElement xe in doc.Descendants("product"))
{
if(xe.Element("catzero") != null)
{
var attr = xe.Element("catzero").Attribute("id");
if(attr != null && attr.Value == "20")
{
string elementValue = xe.Value;
}
}
}
Я не знаю из вашего вопроса, что вы хотите делать с этими элементами и / или атрибутами - просто продолжайте и делайте все, что вам нужно.