我正在搜索 XML 文件以查看是否有与这些文本框中插入的单词匹配的内容txtComKeyword1
,txtComKeyword2
和txtComKeyword3
/或txtComKeyword4
. 下面的功能正在运行,但我可以知道如何突出显示用户在我的richComResults
richtextbox 中出现的四个匹配的文本框中输入的关键字吗?
例如,我的用户将填写这四个文本框,即。txtComKeyword1、txtComKeyword2、txtComKeyword3 和 txtComKeyword4。然后,我的代码会解析XML文件,看看节点是否包含这四个关键字,如果是,节点的数据将输出到我的richComResults上,我想突出显示这四个关键字(eg 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");
}
}
}
}