webForumDet fria alternativet

Läsa en xml fil i en textbox

.NET

26 svar · 530 visningar · startad av wwwstekaren

Medlem sedan apr. 2003234 inlägg
Frågan#1

Hej!

Håller på med en lista, jag vill att en xml fil som jag har ska visas i en textbox för att sedan kunna välja namn ur den ena text boxen där xml filen är inläst till en annan textbox. Så första problemet vill ha in en xml fil i en text box

Medlem sedan apr. 2003234 inlägg
#2

ska bara fylla en text box med data från en xml fil

Medlem sedan juni 20011 732 inlägg
#3

Du menar inte en listbox? För det lär bli svårt att kunna välja namn i en textbox gissar jag. Ett sätt att göra det på:

using System.Xml;
XmlTextReader reader = new XmlTextReader("myData.xml");
while (reader.Read())
{
    // Adda varje namn till din listbox
    ...
}

Eller så fyller du exempelvis en array från ditt xml-dokument som du sedan binder till din list(text?)box!

Medlem sedan apr. 2003234 inlägg
#4

japp det ska vara en listbox, detta lägger jag väll bara in i cs filen? Det kommer ej upp något från min xml fil

Medlem sedan juni 20011 732 inlägg
#5

Hur ser koden ut och hur ser din xml-fil ut? Om du skriver så här, vad får du fram då?

while (reader.Read()) {
  Response.Write(reader.Value + "<br>");
}
Medlem sedan apr. 2003234 inlägg
#6

Min xml fil ser ut så här:

<?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>

jag får inte fram något skumt

Medlem sedan apr. 2003234 inlägg
#7

var ska jag lägga koden? Om jag dubbelklickar på min listbox ska jag lägga koden där?

Medlem sedan juni 20011 732 inlägg
#8

wwwstekaren skrev:

var ska jag lägga koden? Om jag dubbelklickar på min listbox ska jag lägga koden där?

Nej, du vill antagligen fylla den när sidan laddas första gången, eller hur. Skapa en funktion (void) som du startar i pageload.

protected void myFunction() {
  // fylla din listbox
}

pageload () {
  if(!IsPostBack) {
    myFunction();
  }
}
Medlem sedan apr. 2003234 inlägg
#9

Får fel på while (reader.Read())

Exception Details: System.IO.FileNotFoundException: Could not find file "C:\WINNT\system32\webs.xml".

Medlem sedan apr. 2003234 inlägg
#10

hur kopplar jag xml filen till Listboxen då?

Medlem sedan apr. 2003234 inlägg
#11

Nu funkar det, det var fel sökväg bara. Men varför blir sökvägen C:\WINNT\system32 vill ju ha där mitt projekt ligger. Nu får jag fram xml filen på sidan men inte i listboxen

Medlem sedan juni 20011 732 inlägg
#12

wwwstekaren skrev:

Nu funkar det, det var fel sökväg bara. Men varför blir sökvägen C:\WINNT\system32 vill ju ha där mitt projekt ligger. Nu får jag fram xml filen på sidan men inte i listboxen

Det finns många olika sätt att plocka fram sökvägar, exempelvis kan du ju utgå från din applikation:

Request.PhysicalApplicationPath

I din while-loop så addar du varje item och sen binder du dess data, typ nåt sånt här:

while() {
  ListBox.Items.Add(node);
}
ListBox.Databind();
Medlem sedan apr. 2003234 inlägg
#13

var lägger jag in Request.PhysicalApplicationPath för att få rätt sökväg?

När jag kodar så får jag inte inte upp Items

Sorry, jag är nybörjare på .NET tack väldigt mycket att du ställer upp och hjälper mig

Medlem sedan juni 20011 732 inlägg
#14

wwwstekaren skrev:

var lägger jag in Request.PhysicalApplicationPath för att få rätt sökväg?

Säg att du har filen direkt i din rootkatalog där din applikation ligger, då kan du skriva så här:

XmlTextReader(Request.PhysicalApplicationPath + "ditt_xmldokument.xml");

//eller om du har den i en katalog:
XmlTextReader(Request.PhysicalApplicationPath + "katalog/ditt_xmldokument.xml");

När jag kodar så får jag inte inte upp Items

Vet inte om jag förstår hur du menar, men på din listbox så har du något som kallas items (ett item är enkelt uttryckt en specidik rad i din listbox). För att lägga till en text i din listbox skriver du listboxens_ID.Items.Add("en sträng") så kommer den att läggas till sist i listboxen.

Sorry, jag är nybörjare på .NET tack väldigt mycket att du ställer upp och hjälper mig

Inga problem, det är ju det vi är till för... nästa gång är det jag som behöver hjälp. :)

Medlem sedan apr. 2003234 inlägg
#15

Har fortfarande problem med sökvägen han vill fortfarande läsa från C:\WINNT\system32\webs.xml och inte där den ligger:( Varför

Medlem sedan sep. 20011 914 inlägg
#16

Kan du inte använda server.mappath("myData.xml")

Medlem sedan apr. 2003234 inlägg
#17

XmlTextReader reader = new XmlTextReader server.mappath("myData.xml") ?? eller

Medlem sedan juni 20011 732 inlägg
#18
XmlTextReader reader = new XmlTextReader(server.mappath("myData.xml"));
Medlem sedan sep. 20011 914 inlägg
#19

XmlTextReader reader = new XmlTextReader(server.mappath("myData.xml"));
red//hård konkurrens :)

Medlem sedan apr. 2003234 inlägg
#20

får upp Could not find file "C:\WINNT\system32\webs.xml".

Line 32: // fylla din listbox
Line 33: XmlTextReader reader = new XmlTextReader(server.mappath("webs.xml"));
Line 34: while (reader.Read())
Line 35: {
Line 36: // Adda varje namn till din listbox

vad är fel?

306 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
165 ms — ändringar (db)