Извлечение предложений с определенной строкой в узле
Я хочу сделать приложение для извлечения предложений с определенной строкой в узле. Приложение состоит из текстового поля для указания строки, которую нужно искать. При нажатии на кнопку поиска результаты будут отображаться в виде списка. При выборе конкретного элемента из списка будет показан весь текст в элементе, имя узла, имя parentnode и атрибут узла. Проблема возникает, когда узел содержит более одного предложения с определенной строкой. На самом деле приложение не может присвоить соответствующий индекс каждому элементу в списке.
Спасибо за вашу помощь
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml; using System.Xml.Linq; using System.Collections; namespace ttt3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } XmlNodeList list = null; XmlDocument doc = new XmlDocument(); private void button1_Click(object sender, EventArgs e) { // XmlDocument doc = new XmlDocument(); doc.Load(Application.StartupPath + "/XMLFile1.xml"); list = doc.SelectNodes(@"employees/employee[contains(firstname,'" + textBox1.Text + "')]"); listBox1.Items.Clear(); foreach (XmlNode node in list) { int index = 0; string temp = node["firstname"].InnerText; string keyword =textBox1.Text; string[] temps =temp.Split('.'); for (int index1 = 0; index1 < temps.Length; index1++ ) if(temps[index1].Contains(keyword)) { listBox1.Items.Add(temps[index1]); while (index != -1) { index = temp.IndexOf(keyword, index + 1); } } } } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { textBox2.Text = list[listBox1.SelectedIndex].ChildNodes[0].InnerText; label1.Text = list[listBox1.SelectedIndex].ChildNodes[0].LocalName; label2.Text = list[listBox1.SelectedIndex].ParentNode.LocalName; label3.Text = list[listBox1.SelectedIndex].Attributes[0].Value; } private void textBox2_TextChanged(object sender, EventArgs e) { } } }
<?xml version="1.0" encoding="utf-8" ?> <!-- This is list of employees --> <employees> <employee employeeid="1"> <firstname> Nancy includes a BA in psychology from Colorado State University. She also completed. Nancy is a member of Toastmasters International. </firstname> </employee> <employee employeeid="2"> <firstname>Nancy is a student.</firstname> </employee> <employee employeeid="3"> <firstname>Janet is a teacher</firstname> </employee> <employee employeeid="4"> <firstname>Nancy is a teacher.</firstname> </employee> </employees>
Member 14329681
У меня есть проблема с элементами в listBox1. На самом деле я не знаю, как получить одинаковые индексы для предложений в узле для отображения деталей этого узла в элементах управления textBox2 и Label