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 要素が個々の行に対応します。

解析する情報、ファイル名とバージョンは、各行の要素に関連する属性と呼ばれます。そのため、2 番目のリンクのサンプル コードを読みながら、各要素から属性を抽出する方法に注意してください。

あなたの場合、既存の方法を使用してこのファイルを簡単に解析するには、これらの 2 つの用語で十分です。

これらをディクショナリに配置するという点では、単純にディクショナリを使用することもできますが、その名前はよく知っているため、すでに認識している可能性があります。

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

于 2013-06-09T07:17:06.270 に答える
0

LINQ to XMLを使用できます。usingまだ持っていない場合は、C# ファイルの先頭に次のステートメントを追加することから始めます...

using System.Xml.Linq; 

次に、XMLファイルを次のようにロードできますXDocument...

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

または、すでに XML in string 変数を持っている場合は、これを行うことができます...

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 に答える