Avatar billede mieritz Nybegynder
08. april 2005 - 11:23 Der er 7 kommentarer og
1 løsning

parse xml i .net

Jeg er i gang med at lave et skole projekt og vi er stødt på lidt problemer. Vi har en sql database hvor vi gerne vil sende det data vi har der i xml format til vores applikation. Applikationen er skrevet i visual basic .net og det er til en pocket pc. Vores problem er bare hvordan man konverterer data fra databasen og fortæller at det er xml format og dernæst hvordan får man det ind de rigtige steder i applikationen. Har kun arbejdet med xml meget få gange. Håber nogen kan guide mig et sted hen der har noget relevant information om dette emne eller baer kan hjælpe os lidt på vej.
Avatar billede arne_v Ekspert
08. april 2005 - 11:50 #1
Hvis overskriften dækker problemet så http://www.eksperten.dk/artikler/499
Avatar billede arne_v Ekspert
08. april 2005 - 11:51 #2
Men jeg er ikke sikker på at jeg forstår problemet i teksten
Avatar billede mieritz Nybegynder
11. april 2005 - 10:00 #3
det er en rigtig god artikel og dækker det meste af vores problem, men er det muligt at definere i sin sql database at det skal sendes som xml format eller hvad man nu siger så man kan læse det ind i .net.
Avatar billede arne_v Ekspert
11. april 2005 - 10:04 #4
SqlServer har en vis indbygger XML support bl.a. kan du lave en SELECT som
returnerer XML.
Avatar billede arne_v Ekspert
11. april 2005 - 10:05 #5
Det her eksempel skulle illusterere lidt af mulighederne:

using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Data;
using System.Data.SqlClient;

class MainClass
{
    private static SqlConnection con;
    public static void Main(string[] args)
    {
        con = new SqlConnection("server=ARNEPC2\\ARNEPC2RUN;Integrated Security=SSPI;database=TestMSDE");
        con.Open();
        test_nonxml();
        test_sqlsrvxml();
        test_dsxml();
        test_dsxmltrans();
        test_dsxmlschema();
        con.Close();
    }
    private static void test_nonxml()
    {
        Console.WriteLine("non XML");
        Console.WriteLine("=======");
        SqlCommand cmd = new SqlCommand("SELECT * FROM T1", con);
        SqlDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read())
        {
            int f1 = (int)rdr[0];
            string f2 = (string)rdr[1];
            Console.WriteLine(f1 + " " + f2);
        }
        rdr.Close();
        Console.WriteLine();
    }
    private static void test_sqlsrvxml()
    {
        Console.WriteLine("SQLServer XML");
        Console.WriteLine("=============");
        SqlCommand cmd = new SqlCommand("SELECT * FROM T1 FOR XML AUTO", con);
        XmlReader rdr = cmd.ExecuteXmlReader();
        rdr.Read();
        String s;
        for(;;) {
            s = rdr.ReadOuterXml();
            if(s == "") break;
            Console.WriteLine(s);
        }
        rdr.Close();
        Console.WriteLine();
    }
    private static void test_dsxml()
    {
        Console.WriteLine("Data set XML");
        Console.WriteLine("============");
        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM T1", con);
        DataSet ds = new DataSet("T1");
        da.Fill(ds, "record");
        ds.WriteXml(Console.Out);
        Console.WriteLine();
    }
    private static void test_dsxmltrans()
    {
        Console.WriteLine("Data set XML transformed");
        Console.WriteLine("========================");
        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM T1", con);
        DataSet ds = new DataSet("T1");
        da.Fill(ds, "record");
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(ds.GetXml());
        XslTransform xslt = new XslTransform();
        xslt.Load("..\\..\\T1.xsl");
        XmlTextWriter wrt = new XmlTextWriter(Console.Out);
        wrt.Formatting = Formatting.Indented;
        xslt.Transform(doc, null, wrt, null);
        Console.WriteLine();
    }
    private static void test_dsxmlschema()
    {
        Console.WriteLine("Data set XML with schema");
        Console.WriteLine("========================");
        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM T1", con);
        DataSet ds = new DataSet("T1");
        ds.ReadXmlSchema("..\\..\\T1.xsd");
        da.Fill(ds, "record");
        ds.WriteXml(Console.Out);
        Console.WriteLine();
    }
}
Avatar billede mieritz Nybegynder
13. april 2005 - 14:22 #6
ok det fatter jeg så ikke ret meget af det der. Kan du prøve at skære det ud i pap hvad jeg kan gøre, gerne med lidt simpel kode. Det jeg gerne vil er følgende

sende en request fram min kleint til databasen
modtage data fra den i xml format
vise data i vb.net

håber du kan hjælpe mig på vej da jeg sidder meget fast nu
Avatar billede mieritz Nybegynder
14. april 2005 - 13:30 #7
smid lige et svar så du kan få point for din hjælp. Opretter nyt sprøgsmål der dækker mit problem lidt bedre
Avatar billede arne_v Ekspert
14. april 2005 - 16:15 #8
ok
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
Kurser inden for grundlæggende programmering

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