Я мало использовал Linq для XML, так что, вероятно, это не лучший способ, но, похоже, он работает:
string xml = @"
<root>
<Documents Databasename='Type1'>
<Document>
<Documentnumber>1234</Documentnumber>";
// etc..
XDocument xmlDoc = XDocument.Parse(xml);
var output = from item in xmlDoc.Descendants()
where item.Name == "Document"
&& item.Parent.Attribute("Databasename").Value == "Type1"
select new { Number = (string)item.Element("Documentnumber").Value,
Extension = item.Element("DocumentExtension").Value
};
foreach (var item in output) {
Console.WriteLine(item);
}
Обратите внимание, что я добавил дополнительный элемент 'root' в XML, чтобы эта работа работала (при условии нескольких элементов 'Documents').