すべてのデータをxmlファイルに保存しました。
<myself>
<name>sara</name>
<age>20</age>
<gender>female</gender>
</myself>
<myself>
<name>bob</name>
<age>29</age>
<gender>male</gender>
</myself>
また、ユーザーがタイプとキーワードに基づいてすべてのデータを検索できる検索ボックスがあります。このために、私は名前と性別の2つのタイプを入れています。
したがって、ユーザーが名前を選択してキーワードをsara
入力すると、出力には彼女に関するすべてが表示されます。
出力の例は表示する必要があります
sara
20
female
この出力では、それぞれのテキストボックスで表示するようにしています。テキストボックスのタイトル名、年齢、性別が3つあります。
XmlDocument xml = new XmlDocument();
xml.Load("C:\\Users\\HDAdmin\\Documents\\Fatty\\SliceEngine\\SliceEngine\\bin\\Debug\\saya.xml");
XmlNodeList xnList = xml.SelectNodes("/myself");
foreach (XmlNode xn in xnList)
{
string name = xn.InnerText;
nameBox.Text = nameBox.Text + " " + name;
string age = xn.InnerText;
ageBox.Text = ageBox.Text + " " + age;
string gender = xn.InnerText;
genderBox.Text = genderBox.Text + " " + gender;
}
使ってみXmlNodeList xnList = xml.SelectNodes("/myself");
ましたが、サラとボブのすべてが印刷されます。
だから私はxmlファイルを次のようにすることができると推測しています
<name>sara
<gender>female
<age>20</age>
</gender>
</name>
しかし、これはうまくいかないと思います。これには方法がありますか?
これがデータを保存する方法です。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\Users\\HDAdmin\\Documents\\SliceEngine\\SliceEngine\\bin\\Debug\\saya.xml");
XmlElement contentElement = xmlDoc.CreateElement("myself");
XmlElement nameEl = xmlDoc.CreateElement("name");
XmlText xmlText = xmlDoc.CreateTextNode(berjaya[1]);
nameEl.AppendChild(xmlText);
contentElement.AppendChild(nameEl);
xmlDoc.DocumentElement.AppendChild(contentElement);
XmlElement ageEl = xmlDoc.CreateElement("age");
ageEl.InnerText = berjaya[3];
contentElement.AppendChild(ageEl);
xmlDoc.DocumentElement.AppendChild(contentElement);
XmlElement genEl = xmlDoc.CreateElement("gender");
genEl.InnerText = berjaya[39];
contentElement.AppendChild(genEl);
xmlDoc.DocumentElement.AppendChild(contentElement);
++++++++++++====問題解決====++++++++++++++++++++
助けてくれてありがとう。これは解決されました。私は@horghによって与えられた答えを使用しています。
これが私が学んだことです。
1-私のxmlファイルには、メインタグが必要です。
2-ifループを使用してキーワードからデータを取得します。
他のデータを表示するには、次のようになります。
string name = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "name").FirstChild.Value;
if (name == "sara")
{
nameBox.Text = nameBox.Text + " " + name;
string age = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "age").FirstChild.Value;
ageBox.Text = ageBox.Text + " " + age;
string gender = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "gender").FirstChild.Value;
genderBox.Text = genderBox.Text + " " + gender;
}
詳細については、以下をご覧ください。与えられたすべての助けにもう一度感謝します。