検索用語について、xml ファイル内の 2 つの属性を照会しようとしています。
私はこれを持っています:
<?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 属性値と Content 属性値の両方を照会したいと考えています。
これが私のクエリ式です:
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"
};
検索用語が「シャツ」の場合、「ゴルフ シャツ」と「T シャツ」が返されるはずですが、何も見つかりません。二重の「where」句がand「and」式を作成しているためだと思いますが、「or」式が必要です。「where」句の1つを削除すると、機能します。
「||」を入れてみた 最初の「where」句の後ですが、エラーが発生します。
Linq-to-Xml の "or where" 句を実装するにはどうすればよいですか?
ありがとう。