---
title: "XML till Hashtable"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/61694-xml-till-hashtable"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "renholm"
published: "2002-12-09T16:00:04.000Z"
updated: "2002-12-10T15:16:06.000Z"
replies: 4
views: 202
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/61694-xml-till-hashtable"
---

# XML till Hashtable

## #1 — renholm, 2002-12-09T16:00Z

Har nu försökt läsa in en xml fil som ser ut så här

```
<?xml version="1.0" encoding="utf-8" ?>
<ConfigFiles>
	<Graphic>Graphic.xml</Graphic>
	<Security>Security.xml</Security>
	<Web>Web.xml</Web>
	<WebService>WebService.xml</WebService>
</ConfigFiles>
```

till en Hshtable då jag vill ha t.ex \<Graphic\> som key och sedan Graphic.xml som värde, har försökt med BinaryFormatter, XMLSerialization(heter det så?) samt SoapFormatting utan att lyckas, borde jag kanske försöka med att läsa xml filen rad för rad och lägga in?

Permalänk: https://www.webforum.nu/p/61694

## #2 — developer, 2002-12-09T17:39Z

Det beror på hur du menar. Är det ett bestämda element i ConfigFiles är en XmlSerializer rätt trevlig, då får du en klass, och så får du själv lägga till i hashtabellen för varje element. typ såhär:

```
public class ConfigFiles {
	public String Graphic;
	public String Security;
	public String Web;
	public String WebService;
}

class Test {
	static void Main() {
		StreamReader reader = new System.IO.StreamReader(@"c:\ConfigFiles.xml");
		XmlSerializer serializer = new XmlSerializer(typeof(ConfigFiles));
		ConfigFiles configFiles = (ConfigFiles) serializer.Deserialize(reader);

		Hashtable ht = new Hashtable();
		// lägg till varje element såhär
		ht.Add("Graphics", configFiles.Graphic);
	}
}
```

(För så få element skulle jag nog skippa hashtabellen och jobba direkt med configFiles-klassen istället)

Permalänk: https://www.webforum.nu/p/879477

## #3 — renholm, 2002-12-09T18:35Z

Anledningen till att jag valde just Hashtable är att jag tänkte att det skulle vara rätt dynamiskt så jag slipper ändra i ConfigFiles classen varje gång jag kanske vill lägga till en fil. Annars fungerar XmlSerializer alldeles utmärkt.

Permalänk: https://www.webforum.nu/p/879531

## #4 — developer, 2002-12-09T22:42Z

Isåfall kanske xpath är bättre, typ:

```
XPathDocument doc = new XPathDocument(new XmlTextReader(new StreamReader(@"c:\ConfigFiles.xml")));
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator iterator = nav.Select("/ConfigFiles/*");
while (iterator.MoveNext()) {
	Console.WriteLine("<{0}> = {1}", iterator.Current.Name, iterator.Current.Value);
}
```

Permalänk: https://www.webforum.nu/p/879813

## #5 — renholm, 2002-12-10T15:16Z

tack, precis vad jag letade efter.

Permalänk: https://www.webforum.nu/p/883142

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/61694-xml-till-hashtable
