ボタンをクリックした後にこのメソッドを呼び出す私のコード。このメソッドは、行に値を含む MessageBox キーを出力する必要があります。
public static void LoadFromFile()
{
try
{
using (XmlReader xr = XmlReader.Create(@"config.xml"))
{
string sourceValue = "";
string sourceKey = "";
string element = "";
string messageBox = "";
while (xr.Read())
{
if (xr.NodeType == XmlNodeType.Element)
{
element = xr.Name;
if (element == "source")
{
sourceKey = xr.GetAttribute("key");
}
}
else if (xr.NodeType == XmlNodeType.Text)
{
if (element == "value")
{
sourceValue = xr.Value;
}
}
else if ((xr.NodeType == XmlNodeType.EndElement) && (xr.Name == "source"))
{
// there is problem
messageBox += sourceKey + " " + sourceValue + "\n";
}
}
MessageBox.Show(messageBox);
}
}
catch (Exception ex)
{
MessageBox.Show("" + ex);
}
}
メソッドは、すべてのキーを正確に必要な値で出力します。ただし、値メソッドを使用した最後のキーは 2 回出力されます。ソース config.xml には 3 つのキーと 3 つの値しかありませんが、メソッドは 4 つのキーと 4 つの値を出力します。
これは出力の例です:
key1 myValue1
key2 myValue2
key3 myValue3
key3 myValue3
そして別の例:
犬のワンワン
猫ニャー
アヒルのクワック
アヒルのクワック
これは私の XAML コードです:
<?xml version="1.0" encoding="utf-8"?>
<source>
<source key="key1">
<value>myValue1</value>
</source>
<source key="key2">
<value>myValue2</value>
</source>
<source key="key3">
<value>myValue3</value>
</source>
</source>