1

次のような「numbers.xml」という名前のxmlファイルがあります。

<?xml version="1.0" encoding="utf-8" ?>
<program>
<box id="aaa" value="78678"/>
<box id="bbb" value="37287"/>
<box id="ccc" value="783"/>
<box id="ddd" value="7867"/>
<box id="eee" value="786"/>
<box id="fff" value="23"/>
<box id="ggg" value="453"/>
<box id="hhh" value="4537"/>
</program>

このxmlファイルを読み込んでテキストボックスに入力したいです。しかし、Windows フォームでは、アプリケーション txtAAA.textの値は id="aaa" の値である 78678 であるtxtBBB.text必要があります。同様に、値は id="bbb" の値である 37287 である必要があります。

編集:

私はこのように試しました:

 XmlDocument xmldoc = new XmlDocument();
 xmldoc.Load(openfiledialog1.FileName); 
 XmlNodeList nodelist = xmldoc.DocumentElement.ChildNodes;
 XmlNode xmlnode = nodelist.Item(0); 
 txtAAA.Text = xmlnode.Attributes["id"].InnerText; 

ただし、テキストボックスには「aaa」が表示されます。完全に失敗でした。–</p>

4

3 に答える 3

3

nおそらく、このコード行が役立ちます:

TextBox textBox = this.Controls.OfType<TextBox>().FirstOrDefault(tb => tb.Name == "idFromXMl");

あなたの場合、より多くのテキストボックスがある場合、結果をthis.Controls.OfType<TextBox>()コレクションに保存し、これで作業します。

于 2013-08-18T22:08:33.553 に答える
2

XPath を使用してノードを見つけることができます。

次に、属性「値」を見つけます。

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load( openfiledialog1.FileName );
        XmlNode nodeAAA = xmldoc.SelectSingleNode( "/program/box[@id='aaa']" ); //XPath Query here.
        txtAAA.Text = nodeAAA.Attributes["value"].InnerText;

XPath チュートリアル - http://www.w3schools.com/xpath/xpath_syntax.asp

于 2013-08-18T23:00:59.170 に答える