---
title: "XML i listbox del 2"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/74769-xml-i-listbox-del-2"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "wwwstekaren"
published: "2003-04-23T12:49:35.000Z"
updated: "2003-04-23T14:21:02.000Z"
replies: 7
views: 341
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/74769-xml-i-listbox-del-2"
---

# XML i listbox del 2

## #1 — wwwstekaren, 2003-04-23T12:49Z

För det första så vill jag tacka all som hjälpt mig med mitt förra xml datalist problem:)

Nu har jag ett nytt problem:) Det är hur det ska skrivas ut i min lista, nu skriver det ut allt som står i min xml fil inte så snyggt och med mellan slag mellan varje element i xml filen, hur gör jag nu min listbox snygg? Bifogar här nedan min kod

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Xml.XPath;

namespace listaxml
{
	/// \<summary\>
	/// Summary description for WebForm1.
	/// \</summary\>
	public class WebForm1 : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.ListBox ListBoxContacts;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// Put user code to initialize the page here
			if (!(Page.IsPostBack))
			{
				//Response.Write(Server.MapPath("")); 
				myFunction();
			}
		}
		protected void myFunction() 
		{
			// fylla din listbox
			XmlTextReader reader = new XmlTextReader(Server.MapPath("webs.xml"));
			while (reader.Read())
			{
				// Adda varje namn till din listbox
				if ((reader.NodeType == XmlNodeType.Element) && (reader.Name=="Email"))
				reader.Read();
				//ListBoxContacts.Items.Add(reader.Value + "\<br\>");
				//Response.Write(reader.Value + "\<br\>");
		
			}

		}

		\#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// \<summary\>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// \</summary\>
		private void InitializeComponent()
		{    
			this.Load += new System.EventHandler(this.Page_Load);

		}
		\#endregion
	}
}

Så här ser min xml fil ut

\<?xml version="1.0" standalone="yes"?\> 
\<Webs\> 
\<Web\> 
\<Responsible /\> 
\<Name\>Kurt\</Name\> 
\<LastName\>Nilsson\</LastName\> 
\<Email\>kurt.nilsson@ibm.se\</Email\> 
\<Company\>IBM\</Company\> 
\<Contact\>Kund\</Contact\> 
\</Web\> 
\<Web\> 
\<Responsible /\> 
\<Name\>Kurt\</Name\> 
\<LastName\>Johansson\</LastName\> 
\<Email\>kurt@ibm.se\</Email\> 
\<Company\>IBM\</Company\> 
\<Contact\>Kund\</Contact\> 
\</Web\> 
\</webs\>

hur gör jag om jag bara vill ha ut Name och LastName i min listbox?

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

## #2 — Dino, 2003-04-23T13:35Z

Så här kan du göra, finns säkert bättre sätt. Du får själv göra om den till C# :)

```
        dim xtr as new XmlTextReader(Server.MapPath("xmltest2.xml"))
        dim fullname as string
        while xtr.read()
            if xtr.nodetype = xmlnodetype.element then
                if xtr.name = "Name" or xtr.name = "LastName" then
                    if xtr.name = "Name" then
                        xtr.read()
                        fullname &= xtr.value & " "
                    end if
                    if xtr.name = "LastName" then
                        xtr.read()
                        fullname &= xtr.value
                        lbTest.items.add(fullname)
                        fullname = ""
                    end if
                end if
            end if
        end while
        xtr.close()
```

red//var lite onödig kod med

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

## #3 — wwwstekaren, 2003-04-23T13:36Z

hur då göra om till c#?

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

## #4 — Dino, 2003-04-23T13:46Z

Jag kör vb.net du c# så om du vill använda koden så får du göra om den till c#.
Ex
dim intCounter as integer = 0
i vb.net blir i c# 
int intCounter  = 0 (tror jag :) )

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

## #5 — wwwstekaren, 2003-04-23T13:47Z

okey tackar ska kolla in detta:)

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

## #6 — NETwork, 2003-04-23T13:57Z

Här har du ett exempel som funkar, men det är säkert en skitdålig lösning... var är renhoolooolm när man behöver honom! ;) 

```
XmlTextReader reader = new XmlTextReader(Server.MapPath("XMLFile1.xml")); 
			string name = "";
			while (reader.Read()) { 
				if (reader.NodeType == XmlNodeType.Element) {
					if (reader.Name == "Name") {
						reader.Read();
						name = reader.Value;
					}
					if (reader.Name == "LastName") {
						reader.Read();
						name += " " + reader.Value;
					  ListBox1.Items.Add(name);
					}
				}
			}
```

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

## #7 — wwwstekaren, 2003-04-23T14:15Z

Tack så jätte mycket:)

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

## #8 — renholm, 2003-04-23T14:21Z

Jag är här :)

Vet inte om det är den snabbaste och bästa sättet men jag gillar Serilazation dvs att du skapar en class som t.ex heter Kund och sedan en class som heter KundCollection. Kund classen skall spegla innehåller i \<Web\> tagarna. Dvs med publica variabler i samma namn som xml-taggarna. Sedan kör man en XmlSerialization på KundCollection och fyller den med de olika \<Web\> som finns i xml filen. Där efter sätter du bara din KundCollecion som datasource på listbox och kör .DataBind() så blir det nog bra. Sedan om det behövs formateras lite mer så kan man nog säker fixa det. Mer information här: <http://samples.gotdotnet.com/quickstart/howto/doc/xmlserialization/rwobjfromxml.aspx>

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/74769-xml-i-listbox-del-2
