<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#实现这一目标?
答案 0 :(得分:1)
我提供了一个控制台程序来从字符串加载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 ..使用nodeList(SelectNodes)或仅使用一个节点...使用selectSingleNode:
我正在使用selectNodes for days ..并选择SingleNode作为datetime。
string xpath = "/testxml/Day/*";
XmlNodeList xNode = xDoc.SelectNodes(xpath);
foreach (XmlNode node in xNode)
{
string day = node.LocalName;
Console.WriteLine(day + ", value=\"" + node.InnerText + "\"");
}
以上代码打印节点名称(即日期及其值true / false)
现在让我们打印日期时间值:
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();
}
希望有帮助..如果您有任何疑问,请告诉我。
答案 1 :(得分:0)
你有什么尝试?
看一下XDocument类。在那里你可以做类似的事情
XDocument document = XDocument.Load(XMLPATH);
IEnumerable<XElement> day = document.Elements("Day");