我的代碼在點擊按鈕後調用此方法。這個方法應該在帶有行上的值的MessageBox鍵中打印。XAML閱讀器重複打印
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);
}
}
方法打印每個鍵的數值正是我想要的。 但是最後一個鍵與值方法打印兩次。在源碼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>
您可以添加您的XAML嗎? –
@EliArbel我的問題已更新。 –