Avatar billede wolker Nybegynder
23. februar 2003 - 01:18 Der er 9 kommentarer og
1 løsning

Modtage xml

Jeg har fået til opgave at lave en klasse med en function i c#, der kan modtage xml som parameter.

Jeg har opretter en klasse der hedder kunde med en form hvor man kan indtaste kundenavn, adresse, tlf m.m og en Ok-knap hvorved kunden oprettes i databasen.

Nu skal det så være sådan at andre kan bruge den samme funktion fra et andet c# program, og det er så her at XML kommer ind.

Dvs. klassen kunde skal have en funktion ala
Opret_kunde(xml_data), som returnerer true eller false (xml_data skal indeholde kunde oplysningerne).

Og så skal man kunne kalde denne funktion fra f.eks en klasse Test.
Altså noget med

Class test

kunde nykunde = new kunde();
if nykunde.opret_kunde(xml_data)
{
  Ok
}

Kan dette lade sig gøre, og hvis ja hvordan. Et lille eksempel på hvordan man kan sende/modtage xml ville være helt suverænt.
Avatar billede lgy Nybegynder
23. februar 2003 - 08:03 #1
Kan du ikke forklare lidt mere om hvordan jeres setup er.

Men I skal nok kigge på streams over en tcp-socket, hvis ikke de blot kalder din metode direkte med en reference til dit projekt.
Avatar billede mufoxe Nybegynder
23. februar 2003 - 08:57 #2
Hmm, du kan jo indlæse XML i et Dataset og så sende det ind i din metode. Du kan opnå adgang til dit object gennem Remoting.
Avatar billede wolker Nybegynder
23. februar 2003 - 14:03 #3
lgy>> Det er meningen at metoden skal kunne kaldes direkte, dvs han får den klasse jeg laver, altså han kopierer den over på den samme maskine hvor hans program ligger (en server i firmaet), så kan han jo tilgå funktionen direkte.
Avatar billede moller06 Nybegynder
23. februar 2003 - 15:03 #4
Parameteren til funktionen kunne være en sti til xml-filen. Når du har stien kan du jo derfra begynde at indlæse fra xml-filen. Det må da helt klart være det nemmeste.

men som allerede skrevet - så kan du jo streame hele filen over en tcp-forb. til funktionen/klassen.
Avatar billede wolker Nybegynder
23. februar 2003 - 15:42 #5
moller06>> Ja det lyder rigtig, men hvordan gør jeg så det på den rigtige måde. Hvis jeg nu har et xml-dokument der ser sådan ud.

<?xml version="1.0" encoding="utf-8" ?>
<Kunde Version="1">
<ID>1</ID>
<Tlf>90909090</Tlf>
<Navn>Peter Jensen</Navn>
---- cut ---------

</Kunde>

Hvordan indlæser jeg så værdierne (ID,Tlf,Navn) på en mere smart måde end at jeg selv skal til at indlæse filen og søge efter dataerne.
Jeg er godt klar over at jeg kan finde svaret ved at læse online hjælpen eller ved at søge på nettet, men der står en forfærdelig masse om xml, og jeg har ikke tid til at søge/læse i dagevis.
Så et lille eksempel der viser hvordan, vil være guld værd. Jeg udvikler i Visual Studio .Net.
Avatar billede wolker Nybegynder
23. februar 2003 - 15:45 #6
moller06>> jeg glemte at skrive at det var det med en sti til xml-filen jeg mener lyder rigtig
Avatar billede moller06 Nybegynder
23. februar 2003 - 17:18 #7
ja lidt doven er man vel altid - mht. til "online hjælpen".

Du kan ikke undgå at skulle læse xml-dok ind for at finde elementer/attributter
2 måder:
XMLNodeReader - xml-dok indlæses i et DOM-træ, hvorfra du så kan finde dine elementer.
XMLTextReader - du læser direkte i dokumentet.

http://www.nodekassen.dk/eksperten/eksperten.htm
Jeg har smidt et link til hvordan du hurtigt læser et XML-dok.

Sæt dig ind i XPath - og brug det til at finde dine elementer - meget nemt og hurtigt.

Har desværre ikk tid til at udvikle dit system :) - men du arbejder jo i VS.NET, så det skulle da være til at finde ud af.
Avatar billede lgy Nybegynder
23. februar 2003 - 17:22 #8
Du kan også indlæse et xmldocument i et Dataset, som mufoxe skrev tidligere. Så kan du løbe igenne det som var det nogle data du havde fået fra en database.

lgy
Avatar billede wolker Nybegynder
24. februar 2003 - 01:49 #9
moller06>> Tak det var lige det jeg skulle bruge for at komme videre.
Avatar billede wolker Nybegynder
24. februar 2003 - 02:07 #10
Tak til alle.

Og så lige et eksempel ang. det jeg endte op med, bare for at hjælpe andre som søger dette.

public bool Opret_kunde(String sti_til_xml)
{
string Tlf,Navn;
XmlDocument doc = new XmlDocument();
XmlNodeReader reader = new XmlNodeReader(doc);

doc.Load(sti_til_xml);
DataSet d1 = new DataSet("New Dataset");
d1.ReadXml(reader);
DataTable dt = d1.Tables[0];

foreach(DataRow myRow in dt.Rows)
{
  Tlf = myRow["Tlf"].ToString();
  Navn = myRow["Navn"].ToString();
}
return true;
}

Faktisk meget simpel når man først ved det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester