クエリーストリング値に基づいてxmlファイルを作成する必要があります。クエリーストリングのLINQ to XMLクエリー
私のxmlファイル:
<Products>
<Product>
<Name>Name</Name>
<Category>Books</Category>
<SubCategory>Drama</SubCategory>
</Product>
<Product>
<Name>Name</Name>
<Category>Books</Category>
<SubCategory>Action</SubCategory>
</Product>
<Product>
<Name>Name</Name>
<Category>Paper</Category>
<SubCategory></SubCategory>
</Product>
私は?filter=Books,Paper
を入力した場合ので、私はCategory
は、クエリ文字列から値を含んでいる場合Product
を選択する必要があります。私は?filter=Books,Paper&filter2=Drama
を入力した場合
は、私はまだProduct
要素iがちょうどそれらを選択する必要がありfilter2
が含まれているSubCategory
が含まれている場合Category
はfilter1
が含まれていますが、どこProduct
を必要としています。
そうで:
<Products>
<Product>
<Name>Name</Name>
<Category>Books</Category>
<SubCategory>Drama</SubCategory>
</Product>
<Product>
<Name>Name</Name>
<Category>Paper</Category>
<SubCategory></SubCategory>
</Product>
</Products>
また、いくつかの製品が空SubCategory
要素を有していてもよい:?filter=Books,Paper&filter2=Drama
私はこのようなXMLを取得する必要があります。それが重要かどうかは分かりません。
私のクエリは次のようになります。これはfilter1
はSubCategory
が含まれているすべてのProduct
の要素を選択している
var items = from el in SimpleStreamAxis(esysPath, "Product")
where filter.Contains(el.Element("Category").Value.Trim())
where filter1.Contains(el.Element("SubCategory").Value.Trim())
select new
{
ProductID = el.Element("ID").Value,
Name = el.Element("Name").Value,
Price = el.Element("Price").Value,
Picture = el.Element("Picture").Value
};
。
誰でもこのクエリを書く方法について私に正しい方向を指すことができます。
ありがとうございました。