我正在搜索XML文件以查看是否存在與插入這些文本框txtComKeyword1
,txtComKeyword2
,txtComKeyword3
和/或txtComKeyword4
中的文字相匹配的內容。下面的功能正在工作,但是我可以知道如何突出顯示用戶在與我的richComResults
richtextbox中出現的匹配的四個文本框中輸入的關鍵字?在RichTextBox中突出顯示用戶定義的關鍵字
例如,我的用戶將填寫這四個文本框,即。 txtComKeyword1,txtComKeyword2,txtComKeyword3和txtComKeyword4。然後,我的代碼將解析XML文件,看看節點是否包含這四個關鍵字,如果是,節點的數據將在我的richComResults上輸出,我想突出顯示這四個關鍵字(例如txtComKeyword1 = hello,txtComKeyword2 = bye,txtComKeyword3 =早晨,txtComKeyword4 =夜晚)。這4個單詞,如果找到並顯示在richComResults中,將用顏色突出顯示。
我在搜索一段時間後沒有任何線索,我的情況與其他問題有很大不同。我是編程的新手,你的幫助將不勝感激。謝謝!
我的代碼:
private void searchComByKeywords()
{
// Process the list of files found in the directory.
string[] fileEntries = Directory.GetFiles(sourceDir);
foreach (string fileName in fileEntries)
{
XmlDocument xmlDoc = new XmlDocument(); //* create an xml document object.
string docPath = fileName;
xmlDoc.Load(docPath); //* load the XML document from the specified file.
XmlNodeList nodeList = xmlDoc.GetElementsByTagName("item");
foreach (XmlNode node in nodeList)
{
XmlElement itemElement = (XmlElement) node;
string itemDescription = itemElement.GetElementsByTagName("description")[0].InnerText;
if (txtComKeyword1.Text != (String.Empty) && itemDescription.ToLower().Contains(txtComKeyword1.Text.ToLower()) ||
txtComKeyword2.Text != (String.Empty) && itemDescription.ToLower().Contains(txtComKeyword2.Text.ToString()) ||
txtComKeyword3.Text != (String.Empty) && itemDescription.ToLower().Contains(txtComKeyword3.Text.ToString()) ||
txtComKeyword4.Text != (String.Empty) && itemDescription.ToLower().Contains(txtComKeyword4.Text.ToString()))
{
string itemTitle = itemElement.GetElementsByTagName("title")[0].InnerText;
string itemDate = itemElement.GetElementsByTagName("pubDate")[0].InnerText;
string itemAuthor = itemElement.GetElementsByTagName("author")[0].InnerText;
richComResults.AppendText("Author: " + itemAuthor + "\nDate: " + itemDate + "\nTitle: " + itemTitle + "\nDescription: " + itemDescription + "\n\n--------\n\n");
}
}
}
}
但我想要的關鍵字不完全是「txtComKeyword1」。 :| txtComKeyword1是允許用戶輸入單詞的文本框。 – Shyuan 2012-08-10 03:21:33
然後只需更改一行:'string keyword = txtComKeyword1.Text' – Jan 2012-08-10 03:45:47
好的,會試試看,並告訴你它是否有效。 :) – Shyuan 2012-08-10 03:57:31