1

我在文件标签中有一个 Xml 文件和文件名和版本.....我想读取所有文件名及其相应的版本,然后想将它们添加到字典中

<application name="AutoUpdator" url="\\server\setups\AutoUpdator" version="1.1.0.0" updatedOn= "9-6-2013">
<InfoConfigFile name="InfoFile" version="1.1.0.0" />
<file name="Core0.txt" version="1.1.0.0" source="\\server\setups\AutoUpdator\1.1.0.0\bin\Core0.txt"/>
<file name="Core1.txt" version="1.1.0.0" source="\\server\setups\AutoUpdator\1.1.0.0\bin\Core1.txt"/>
<file name="Core2.txt" version="1.1.0.0" source="\\server\setups\AutoUpdator\1.1.0.0\bin\Core2.txt"/>
<file name="Core3.txt" version="1.1.0.0" source="\\server\setups\AutoUpdator\1.1.0.0\bin\Core3.txt"/>
<file name="Core4.txt" version="1.0.0.0" source="\\server\setups\AutoUpdator\1.0.0.0\bin\Core4.txt"/>
<file name="Core5.txt" version="1.0.0.0" source="\\server\setups\AutoUpdator\1.0.0.0\bin\Core5.txt"/>
</files>
</application>
4

2 回答 2

0

C# 有一个相当广泛的 XML 库可用。

您可能正在寻找的类称为 XmlReader,文档可在此处获得:

http://msdn.microsoft.com/en-us/library/system.xml.xmlreader(v=vs.71).aspx http://support.microsoft.com/kb/307548

您发布的示例文本中的每一行都称为 XML 中的一个元素,因此当您阅读上述链接中的文档时,XmlNodeType 元素对应于每一行。

您要解析的信息,文件名和版本,称为与每行元素相关的属性,因此当您阅读第二个链接中的示例代码时,请注意如何从每个元素中提取属性。

在您的情况下,这两个术语足以使用现有方法轻松解析此文件。

就将这些放入字典而言,您可以简单地使用字典,但由于您熟悉该名称,您可能已经知道这一点。

http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

于 2013-06-09T07:17:06.270 回答
0

您可以使用LINQ to XMLusing如果您还没有以下语句,请首先在 C# 文件的顶部添加以下语句...

using System.Xml.Linq; 

然后您可以将 XML 文件加载到XDocument这样的...

XDocument document = XDocument.Load(@"C:\path\to\your\file.xml");

或者,如果您已经拥有字符串变量中的 XML,您可以这样做...

XDocument document = XDocument.Parse(xmlString);

如果您的 XML 中不能有重复的文件名,您可以Dictionary像这样...

var dictionary = document.Root
                         .Element("files")
                         .Elements("file")
                         .ToDictionary(x => x.Attribute("name").Value,
                                       x => x.Attribute("version").Value);
于 2013-06-09T07:22:24.873 回答