如何根据特定日期读取c#中的xml值? [英] How to Read xml values in c# according to particular day?
本文介绍了如何根据特定日期读取c#中的xml值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个xml文件存储特定日期,当天的时间和特定时间的文件名。如何在C#中使用XML Reader只获取特定日期的值(时间和文件名)。请问任何人可以帮助我吗?
我的XML文件是这样的
I have one xml file which is stored Particular day, timings of the day, and the file name of particular time. How Can I get only particular day's value (timings and file names) using XML Reader in C#. Please can any one help me?
My XML file is like this
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <MediaPlayer>
- <Body>
<Name>Mp3 Player</Name>
- <Days>
- <Monday>
<Day>Monday</Day>
<FiveToNine>Old Kannada</FiveToNine>
<NineToLeven>New Kannada</NineToLeven>
<LevenToThirteen>New Hindi</LevenToThirteen>
<ThirteenToFourteen>Old Hindi</ThirteenToFourteen>
<ForteenToFifteen>Old English</ForteenToFifteen>
<FifteenToSeventeen>New English</FifteenToSeventeen>
<SeventeenToEighteen>Old Malayalam</SeventeenToEighteen>
<EighteenToTwenty>New Malayalam</EighteenToTwenty>
<TwentyToTwentytwo>Old Tamil</TwentyToTwentytwo>
<TwentytwoToZero>New Tamil</TwentytwoToZero>
<ZeroToFive>Arabic</ZeroToFive>
</Monday>
- <Tuesday>
<Day>Tuesday</Day>
<FiveToNine>AAA</FiveToNine>
<NineToLeven>BBB</NineToLeven>
<LevenToThirteen>CCC</LevenToThirteen>
<ThirteenToFourteen>DDD</ThirteenToFourteen>
<ForteenToFifteen>EEE</ForteenToFifteen>
<FifteenToSeventeen>FFF</FifteenToSeventeen>
<SeventeenToEighteen>GGG</SeventeenToEighteen>
<EighteenToTwenty>HHH</EighteenToTwenty>
<TwentyToTwentytwo>III</TwentyToTwentytwo>
<TwentytwoToZero>JJJ</TwentytwoToZero>
<ZeroToFive>KKK</ZeroToFive>
</Tuesday>
</Days>
</Body>
</MediaPlayer>
我的代码是这样的
and my code is like this
XmlTextReader reader = new XmlTextReader(@"D:\MediaPlayer.xml");
while (reader.Read())
{
if (reader.IsStartElement())
{
switch (reader.Name)
{
case "FiveToNine":
reader.Read();
textBox1.Text = reader.Value;
break;
case "NineToLeven":
reader.Read();
listBox1.Items.Add(reader.Value);
break;
}
}
}
reader.Close();
推荐答案
It将很容易使用XMlDocument和Xpath而不是XMlTextReader。尝试以下代码
It will be easy to use the XMlDocument and Xpath instead of XMlTextReader.Try the following code
string childNodeName = comboBox1.Text;//Monday,Tuesday....
string XmlFile = @"D:\MediaPlayer.xml";
if (string.IsNullOrEmpty(childNodeName))
{
return;
}
XmlDocument xmlDoc = new XmlDocument();
if (File.Exists(XmlFile))
{
xmlDoc.Load(XmlFile);
XmlNodeList listRoot = xmlDoc.DocumentElement.SelectNodes("/MediaPlayer/Body/Days/" + childNodeName); //Xpath
foreach (XmlNode nodesDay in listRoot)
{
if (childNodeName == nodesDay.Name)
{
XmlNodeList listrootDay = nodesDay.ChildNodes;
textBox1.Text = nodesDay.Name;
foreach (XmlNode nodeChild in listrootDay)
{
listBox1.Items.Add(nodeChild.Name + "-" + nodeChild.InnerText);
}
}
}
}
这篇关于如何根据特定日期读取c#中的xml值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文