我想讓我的winform應用程序讀取保存在Dropbox上的XML文件。但當它到達如何讀取Dropbox上的XML文件與XmlTextReader
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "updater"))
然後它不會繼續。但如果我刪除& &(reader.Name ==「updater」),那麼它會繼續,但它仍然不讀取「版本」和「網址」的值。
鏈接update.xml:https://www.dropbox.com/s/25gcpllsqsj1qrq/update.xml
下面是在我的項目我的C#代碼。我正在嘗試使用XmlTextReader讀取dropbox上的update.xml,但我從未得到任何值!
我試着放置messageboxes給我看reader.Name,但它返回「html」而不是「updater」。
它不需要必須是XmlTextReader。只要解決方案有效,那麼它的罰款:D
任何幫助將不勝感激。
private void checkForUpdatesToolStripMenuItem_Click(object sender, EventArgs e)
{
Version newVersion = null;
string url = "";
XmlTextReader reader = null;
try
{
string xmlURL = "https://www.dropbox.com/s/25gcpllsqsj1qrq/update.xml";
reader = new XmlTextReader(xmlURL);
reader.MoveToContent();
string elementName = "";
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "updater"))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element) elementName = reader.Name;
else
{
if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue))
{
switch (elementName)
{
case "version":
newVersion = new Version(reader.Value);
break;
case "url":
url = reader.Value;
break;
}
}
}
}
}
}
catch (Exception)
{
}
finally
{
if (reader != null) reader.Close();
}
Version curVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
if (curVersion.CompareTo(newVersion) < 0)
{
string title = "New version detected.";
string question = "Download the new version?";
if (DialogResult.Yes == MessageBox.Show(this, question, title, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
{
System.Diagnostics.Process.Start(url);
}
}
else
{
MessageBox.Show("The program is up to date!");
}
}
非常感謝!那正是我需要的。 – MasterXD
我很高興我可以幫助:)乾杯 –