使用C读取XML文件#
<Day>
<Monday>true</Monday>
<Tuesday>false</Tuesday>
<Wednesday>true</Wednesday>
<Thursday>false</Thursday>
<Friday>true</Friday>
<Saturday>false</Saturday>
<Sunday>true</Sunday>
</Day>
<Time>
<dateTime>12:21</dateTime>
</Time>
我需要读取上述xml文件以获取日期和时间,并将数据提取到变量。如何用c#实现这个?使用C读取XML文件#
我提供一个控制台程序加载从字符串的XML。您可以从文件中提供的文件路径以及加载..(我已经提到过的语句)..
这是你的XML:
string xml = @"<testxml><Day>
<Monday>true</Monday>
<Tuesday>false</Tuesday>
<Wednesday>true</Wednesday>
<Thursday>false</Thursday>
<Friday>true</Friday>
<Saturday>false</Saturday>
<Sunday>true</Sunday>
</Day>
<Time>
<dateTime>12:21</dateTime>
</Time>
</testxml>";
现在宣布的XmlDocument()
和加载XML进去..
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
//xDoc.Load(xmlpath);
现在你的xml文档已经准备好了,用xDoc.Load(xmlpath);
可以从文件路径加载。
现在您要访问节点提供的XPath ..或者使用的selectSingleNode使用节点列表(的SelectNodes)或只是一个节点..:
我使用的selectNodes天..和对的selectSingleNode日期时间。
string xpath = "/testxml/Day/*";
XmlNodeList xNode = xDoc.SelectNodes(xpath);
foreach (XmlNode node in xNode)
{
string day = node.LocalName;
Console.WriteLine(day + ", value=\"" + node.InnerText + "\"");
}
上面的代码打印节点名称(即天,并将其值真/假)
现在,让我们打印的日期时间值:
xpath = "/testxml/Time/dateTime";
XmlNode node1 = xDoc.SelectSingleNode(xpath);
Console.WriteLine(node1.LocalName + ", value=\"" + node1.InnerText + "\"");
这是与XML DOM玩简单的例子:)
现在整个代码:
static void Main(string[] args)
{
string xml = @"<testxml><Day>
<Monday>true</Monday>
<Tuesday>false</Tuesday>
<Wednesday>true</Wednesday>
<Thursday>false</Thursday>
<Friday>true</Friday>
<Saturday>false</Saturday>
<Sunday>true</Sunday>
</Day>
<Time>
<dateTime>12:21</dateTime>
</Time>
</testxml>";
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
//xDoc.Load(xmlpath);
string xpath = "/testxml/Day/*";
XmlNodeList xNode = xDoc.SelectNodes(xpath);
foreach (XmlNode node in xNode)
{
string day = node.LocalName;
Console.WriteLine(day + ", value=\"" + node.InnerText + "\"");
}
xpath = "/testxml/Time/dateTime";
XmlNode node1 = xDoc.SelectSingleNode(xpath);
Console.WriteLine(node1.LocalName + ", value=\"" + node1.InnerText + "\"");
Console.ReadLine();
}
希望它有帮助..让我知道如果您有任何问题..
谢谢。这会做。 – user004 2013-02-27 11:20:43
你有什么尝试?
看看类XDocument。在那里,你可以这样做
XDocument document = XDocument.Load(XMLPATH);
IEnumerable<XElement> day = document.Elements("Day");
我没有尝试,因为我是新来的C#。我正在寻找想法。谢谢你的回答 – user004 2013-02-27 06:13:05
请参阅http://*.com/questions/2565064/reading-an-xml-file-with-net?rq=1 – 2013-02-27 06:05:05
是它整个XML,或只是其中的一部分?预期的结果是什么?应该提取哪一天或哪几天?你有什么尝试? – 2013-02-27 06:34:19
你问的问题让别人完成你的工作... – giammin 2013-03-05 15:22:54