これは私の xml ファイルです。
<UserClass>
<Id>1</Id>
<Name>oss</Name>
<Address>
<Id>1</Id>
<Street>asstreet</Street>
</Address>
</UserClass>
したがって、これらの「ノード」をコンボボックスのアイテムに追加したいと思います。ユーザーが UserClass を入力し、「.」(ドット) を「UserClass」の末尾に入力した場合。ID、名前、その他のものはコンボボックスにリストする必要があります。
ユーザーが「UserClass」と入力しました。そして -> コンボボックスはこれらを取得します;
UserClass.Id
UserClass.Name
UserClass.Address.Id
UserClass.Address.Street
私は多くのことを試しました。
...
try
{
string parsedNode = ParseComboBox();
XmlReader rdr = XmlReader.Create(new System.IO.StringReader(_globalXml));
comboBox1.Items.Clear();
while (rdr.Read())
{
if (rdr.NodeType == XmlNodeType.Element)
{
comboBox1.Items.Add(rdr.LocalName);
}
comboBox1.DroppedDown = true;
}
//string parsedNode = ParseComboBox();
//XmlNodeList childList = xml.GetElementsByTagName(parsedNode);
////comboBox1.Items.Clear();
//foreach (XmlNode node in childList)
//{
// foreach (var osman in node.ChildNodes)
// {
// comboBox1.Items.Add(parsedNode + "." + osman);
// }
//}
}
catch (Exception)
{
MessageBox.Show("fuuu");
}
}...
private string ParseComboBox()
{
string resultAsXmlNodes = null;
string text = comboBox1.Text;
if (text.EndsWith("."))
{
char[] delimiterChars = { '.' };
string[] words = text.Split(delimiterChars);
foreach (string s in words)
{
resultAsXmlNodes += s;
}
}
return resultAsXmlNodes;
}
正しく動作していません。簡単にできる方法があると思います。では、簡単な方法は何ですか?または単に、ノード名をコンボボックスに表示するにはどうすればよいですか?