Avatar billede basementjack Nybegynder
15. januar 2005 - 14:12 Der er 12 kommentarer og
1 løsning

Sort By i XmlDocument uden XSL(T)

Hej

Jeg hiver værdier ud af xml dokumenter manuelt, men nu kunne jeg godt tænke mig at disse værdier skal sorteres. Det skal være uden XSL(T) da det er manuelt, og det vil tage en krig at lave det om.

Jeg ønsker et alternativ måde at sortere på, det ville være bedst hvis det kunne gøres med xpath, da det er det jeg har brugt indtil nu.

Helst et fuldt eksempel i C# eller Vb.Net.

/basementjack
Avatar billede snepnet Nybegynder
15. januar 2005 - 14:16 #1
hej Jack.

har ikke arbejdet så meget direkte på xml-dokumenter, men hvis du indlæser din xml i et dataset har du gode muligheder for at lave views af det - f.eks.

DataSet ds = new DataSet();
ds.LoadXml(...);

DataView dv = new DataView(ds.Tables[x], "somefilter", "somesorting", DataRowState.X);

Mvh
Avatar billede snepnet Nybegynder
15. januar 2005 - 14:17 #2
det er sansynligt at du kan lave et view sådan mere direkte på xml'en - jeg ved det ikke.
mvh
Avatar billede basementjack Nybegynder
15. januar 2005 - 14:26 #3
Ja.. Men i øjeblikket laver det således :

html += string.Format("\n<div class='guest'>\n\t<p class='guestp'>\n\t\t<a href='mailto:{1}'>{0}</a><p class='span'>{3}</p>\n\t</p>\n\t<p class='guestpp'>\n\t\t{2}\n\t</p>\n</div>\n", xmlNode.ChildNodes[0].ChildNodes[0].Value, xmlNode.ChildNodes[1].ChildNodes[0].Value, xmlNode.ChildNodes[2].ChildNodes[0].Value, xmlNode.ChildNodes[3].ChildNodes[0].Value, xmlNode.ChildNodes[4].ChildNodes[0].Value);

Som en Literal jeg lægger i en placeholder...

Kunne jeg nok også gøre ved et datagrid, men for hver XmlNode skal jeg lige teste om der ligger en email, et http://www.link.dk eller et www.link.dk i en af ChildNodes'ene, så DataGrid gør heller ikke.
Avatar billede burningice Nybegynder
15. januar 2005 - 14:26 #4
eller har gode gamle wilson lavet en XmlDataProvider, hvori man kan bruge normal sql til at manipulere med sine xml-filer

Der er det jo også bare at skrive ORDER BY felt ASC/DESC
Avatar billede basementjack Nybegynder
15. januar 2005 - 14:28 #5
wilson? ... :)
Avatar billede snepnet Nybegynder
15. januar 2005 - 14:31 #6
Se der - en XmlDataProvider - den kunne være fin.
Har du et link der cyberfessor ?
mvh
Avatar billede basementjack Nybegynder
15. januar 2005 - 14:33 #7
http://workspaces.gotdotnet.com/XmlDbClient gogglede mig frem til det link.. :)
Avatar billede snepnet Nybegynder
15. januar 2005 - 14:37 #8
super :o) - tak for den cyberfessor, og tak for linket jack - den kan godt vise at være god at have ved hånden en dag :o)
mvh
Avatar billede basementjack Nybegynder
15. januar 2005 - 14:39 #9
Nu mangler jeg bare et eksempel på hvordan det bruges.. Der er ikke rigtigt dokumentation med, kun kildekode.. :/
Avatar billede snepnet Nybegynder
15. januar 2005 - 14:42 #10
jeg kender den ikke, og sidder lige midt i noget, så jeg kan ikke kigge på den nu - men det kan jo være at cyberfessor ligger inde med en lille snippet :oP

jeg kan muligvis kigge på den senere... du kan lige skrive hvis du ikke har fået den til at makke ret.

mvh
Avatar billede burningice Nybegynder
15. januar 2005 - 15:12 #11
det er jo normal ad.net syntakt:

XmlDbConnection cn = new XmlDbConnection();
        cn.ConnectionString = "tasks.xml";
        cn.Open();

        XmlDbCommand cmd = new XmlDbCommand();
        cmd.CommandText = "SELECT title FROM task";
        cmd.CommandType = CommandType.Text;
        cmd.Connection = cn;

        IDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        while(dr.Read())
        {
            Response.Write((string) dr[0] + "<BR>");
        }
        dr.Close();


        cn.Close();
Avatar billede basementjack Nybegynder
15. januar 2005 - 15:57 #12
Okay.. Det kunne jo godt være at man fik resultat i XmlNodeList eller et eller andet.. Men takker.. Læg et svar så giver jeg nogle point.. ;)
Avatar billede burningice Nybegynder
15. januar 2005 - 16:58 #13
:) svar
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