Как только вы загрузите свой XML-документ в объект XDocument, вы сможете получить доступ к его тегам. Поэтому вам нужно взять элемент Root вашего XDocument и перейти к тегам строк с помощью метода Elements. И когда у вас есть все ваши метки в коллекции, вы можете сортировать те, у которых нет поля города. Я почти уверен, что в элементах xml есть свойство HasValue, которое сообщает вам, имеет ли оно значение или нет. Но если его нет, вы можете проверить свойство Value, которое будет пустым или пустым.
Итак, немного кода для этого, как мне нравится:
XDocument doc = XDocument.Load("yourfile");
var tags = doc.Root.Element("catalog")
.Elements("row")
.Where(r=>r.Elements("field")
.Single(f=>f.Attribute("name").Value == "City"
&& string.IsNullOrWhitespace(f.Value)));
Это переводится примерно так: Возьмите документ, выберите корень документа, возьмите элемент с именем «catalog» и дайте мне все элементы «row», где это правда, что если Аргумент «row» имеет элемент «field» с атрибутом «name», установленным в «City», это ноль, пустая строка или пробел.
Теперь это может быть не так легко понять, если вы новичок в этом, но я бы так поступил. Вы можете добавить несколько нулевых проверок, но теперь это зависит от вас.