私はプログラミング自体と C# winforms に非常に慣れていないので、ご容赦ください。
AAA.txt
コンボボックスに「AAA」として表示するファイルがあります。私の主な意図は、ユーザーがドロップダウン コンボから AAA を選択し、検索をクリックできるようにすることです。<description></description>
クリック イベントで、関数はテキスト ファイルのコンテンツを 1 行ずつ読み取り、20 個の XML ファイルのすべての子ノードにこれらの単語 (hello など) またはフレーズ (おはようなど) が含まれているかどうかを確認します。これらの単語/フレーズが特定の子ノードに表示される場合、親ノード<description></description>
全体のデータが結果として表示されます。<item></item>
AAA.txt:
hello
good morning
great
bye
私の機能:
private void searchComByKeywords()
{
string[] fileEntries = Directory.GetFiles(sourceDir);
foreach (string fileName in fileEntries)
{
XmlDocument xmlDoc = new XmlDocument();
string docPath = fileName;
xmlDoc.Load(docPath);
XmlNodeList nodeList = xmlDoc.GetElementsByTagName("item");
foreach (XmlNode node in nodeList)
{
XmlElement itemElement = (XmlElement)node;
string itemDescription = itemElement.GetElementsByTagName("description")[0].InnerText;
if (itemDescription.ToLower().Contains(comboTemplates.SelectedItem.ToString()))
{
string itemTitle = itemElement.GetElementsByTagName("title")[0].InnerText;
string itemDate = itemElement.GetElementsByTagName("pubDate")[0].InnerText;
string itemAuthor = itemElement.GetElementsByTagName("author")[0].InnerText;
richComByTemplate.AppendText("Author: " + itemAuthor + "\nDate: " + itemDate + "\nTitle: " + itemTitle + "\nDescription: " + itemDescription + "\n\n--------\n\n");
}
}
}
}
LINQ-to-XML を使用するように言われる人もいるかもしれませんが、現時点ではこれは問題ではありません。私は、この行が意図したとおりにif (itemDescription.ToLower().Contains(comboTemplates.SelectedItem.ToString()))
機能しないことを知っています (選択した AAA テキスト ファイルを調べる代わりに、「AAA」という単語を検索します)。選択したテキスト ファイルに表示される単語/フレーズを読み取るために、この行を正しく記述する方法を教えてください。
ありがとうございました。