Я пытаюсь запросить два атрибута в XML-файле для поискового запроса.Linq-to-xml where or clause
У меня есть это:
<?xml version="1.0" encoding="utf-8" ?>
<Products>
<item ProductName="Golf Shirt" Content="This is a nice breathable shirt for golf." />
<item ProductName="Bowling Ball" Content="This is a colorful 8-lbs ball." />
<item ProdcutName="Tee Shirt" Content="100% cotton tee-shirt." />
</Products>
Я хочу, чтобы запросить как ProductName и значения атрибутов контента на поисковый запрос.
Вот мое выражение запроса:
var results = from node in _xDoc.Descendants("Item")
where node.Attribute("Content").Value.Contains(searchTerm)
where node.Attribute("ProductName").Value.Contains(searchTerm)
select new SearchModel()
{
Name = node.Attribute("ProductName").Value,
Url = "the url",
Group = "Products"
};
Если мой термин поиск «рубашка», я должен вернуться «Golf рубашка» и «майка», но я ничего не получаю. Я думаю, это потому, что создается предложение double where where и выражение «and», и мне нужно выражение «или». Если я удалю одно из предложений «где», это сработает.
Я попробовал поставить «||» после первого предложения where, но это порождает ошибку.
Как реализовать предложение «или где» для Linq-to-Xml?
Спасибо.
Да, я только что понял, и это очень похоже на ваш ответ. – Kahanu