0

これは私の 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;
    }

正しく動作していません。簡単にできる方法があると思います。では、簡単な方法は何ですか?または単に、ノード名をコンボボックスに表示するにはどうすればよいですか?

4

1 に答える 1