Avatar billede hellfishdk Nybegynder
19. oktober 2009 - 14:43 Der er 16 kommentarer og
1 løsning

ArrayList til XML

Jeg har en arraylist der henter noget data fra en hjemmeside.

Den her arrayliste vil jeg gerne have skrevet ned i en xml. Men hvordan?

Arraylisten ser således ud:

mandag
MØK_Erhvervsøkonomi, 1. år
Øvelser
8:00
9:50
43
DSC033
MØK_Funktioner af 2 variable og matrixregning, 1.år
Undervisning
9:50
11:40
43-44
DSC033
MØK_Datalogi, 1. år
Undervisning
12:35
14:25
37, 41, 43-47, 49
SPs10 Deloitte Aud.
tirsdag
MØK_Erhvervsøkonomi, 1. år
Undervisning
8:00
9:50
37-38, 43-45, 50
SP210 British American Tobacco Aud.
MØK_Afsætningsøkonomi, 1. år
Undervisning
9:50
11:40
37-38, 40-41, 43-47
SPs05 KPMG Aud.
onsdag
MØK_Erhvervsøkonomi, 1. år
Øvelser
8:00
9:50
43, 45-47
SPs10 Deloitte Aud.
MØK_Datalogi, 1. år
Øvelser
9:50
11:40
38, 40-41, 43-46, 48-49
PHs15
MØK_Datalogi, 1. år
Øvelser
12:35
14:25
40, 43-49
SP107
MØK_Datalogi, 1. år
Øvelser
14:25
16:15
38, 41, 43-49
SP107
torsdag
MØK_Funktioner af 2 variable og matrixregning, 1.år
Undervisning
9:50
14:25
36-38, 40-41, 43-50
SPs16 PriceWaterHouseCoopers
fredag
MØK_Erhvervsøkonomi, 1. år
Undervisning
8:00
9:50
36-38, 40-41, 43-47
SP201 Danske Bank Aud.
MØK_Afsætningsøkonomi, 1. år
Øvelser
9:50
11:40
41, 43-46
Ks71 Euler Hermes Aud.
lørdag
søndag

Som det ses er der en linie med dag, fx. mandag, og så er der nogle tilhørende fag i den dag. Herefter starter en ny dag, med nye fag. Nogen af dagene er der ikke undervisning i, ligesom lørdag og søndag.

Jeg vil gerne have skrevet hverdag ind i XML der har kunne se sådan her ud:

<?xml version="1.0" encoding="iso-8859-1" ?>
<Schedules>
  <Schedule Weeknumber="">
    <Monday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Monday>
    <Tuesday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Tuesday>
    <Wedensday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Wedensday>
    <Thursday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Thursday>
    <Friday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Friday>
    <Saturday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Saturday>
    <Sunday Lectures="">
      <Class name="Fag"></Class>
      <EducationType name="Undervisnings type"></EducationType>
      <FromTime name="Fra kl."></FromTime>
      <EndTime name ="Til kl."></EndTime>
      <Weeks name="Uge(r)"></Weeks>
      <Location name="Lokale(r)"></Location>
    </Sunday>
  </Schedule>
</Schedules>

Hvordan koder jeg en dynamisk arraylist ind i XML???
Avatar billede arne_v Ekspert
19. oktober 2009 - 14:51 #1
Du ville være betydeligt bedre stillet med en List<WeekDay,List<Course>> end med en ArrayList fuld af string's.

Men står du nu med en ArrayList fuld af string's, så er det eneste praktisk nok en XmlTextWriter og en løkke som itererer over listen og udskriver XML i det ønskede format.
Avatar billede hellfishdk Nybegynder
19. oktober 2009 - 15:20 #2
Jeg har forsøgt mig med en klasse der skulle skrive til XML, men har ikke kunne få det til at fungerer:

using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Xml;
using System.Collections.Generic;

namespace CBSTimetable
{
    class CreateXml
    {
        /*
        *Class that creates Schedule XML.
        *EX.:
        *<Schedules>
            <Schedule Weeknumber="">
              <Monday Lectures="">
              <Class name="Fag"></Class>
              <EducationType name="Undervisnings type"></EducationType>
              <FromTime name="Fra kl."></FromTime>
              <EndTime name ="Til kl."></EndTime>
              <Weeks name="Uge(r)"></Weeks>
              <Location name="Lokale(r)"></Location>
            </Monday>
        */
        private CBSFetchRawSchedule scheduels = new CBSFetchRawSchedule();

        private XmlTextWriter TxtWrtr()
        {
            XmlTextWriter wrtr = new XmlTextWriter(scheduels.XMLFilePathName("Test.xml"), Encoding.UTF8);
            return wrtr;
        }
       

        public void InitSchedulesXML()
        {
            ArrayList weeksSchedules = scheduels.WeekSchedule();
            string[] days = new string[]{"mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag"};
            XmlTextWriter wrtr = TxtWrtr();
           
            wrtr.WriteStartDocument();

            wrtr.WriteStartElement("Schedules");
            wrtr.WriteStartElement("Schedule");
            wrtr.WriteAttributeString("Weeknumber", "37");

            //Opret ugens dage
            foreach (string d in days)
            {
                for (int i = 0; i < weeksSchedules.Count; i++)
                {
                    int dag1, dag2 = 0;
                    dag2 = weeksSchedules[i].ToString().TrimEnd().IndexOf(d);
                    dag1 =- dag2;
                    dag1 = dag2 - dag1;

                    //TESTER
                    int c = dag1-dag2;
                    c = Math.Min(dag2, dag1);

                    //tilføj en dag
                    if (dag1 - dag2 > -1)
                    {
                        wrtr.WriteStartElement(d);
                        //Tilføj Fag Element

                        wrtr.WriteStartElement("Class");
                        wrtr.WriteAttributeString("name", "Fag");
                       

                        wrtr.WriteEndElement();

                        //Tilføj undervisningstype
                        wrtr.WriteStartElement("EducationType");
                        wrtr.WriteAttributeString("name", "Undervisnings type");
                        wrtr.WriteEndElement();

                        //Tilføj fra tid
                        wrtr.WriteStartElement("FromTime");
                        wrtr.WriteAttributeString("name", "Fra kl.");
                        wrtr.WriteEndElement();

                        //Tilføj slut tid
                        wrtr.WriteStartElement("EndTime");
                        wrtr.WriteAttributeString("name", "Til kl.");
                        wrtr.WriteEndElement();

                        //Tilføj Uger
                        wrtr.WriteStartElement("Weeks");
                        wrtr.WriteAttributeString("name", "Uge(r)");
                        wrtr.WriteEndElement();

                        //Tilføj lokaler
                        wrtr.WriteStartElement("Location");
                        wrtr.WriteAttributeString("name", "Lokale(r)");
                        wrtr.WriteEndElement();
                        wrtr.WriteEndElement();
                    } 
                }
                List<string> lectures = new List<string>();
                int countRows = 0;
                foreach (string s in weeksSchedules)
                {
                    char cr = '\r';
                    foreach (char ch in s)
                    {
                        if (cr == ch)
                            //countRows++;
                            lectures.Add(s.Substring(s.IndexOf("mandag") + 7, s.IndexOf("tirsdag") - 7));
                    }
                   
                }
            }


            wrtr.WriteEndElement();//End schedule element
            wrtr.WriteEndElement();//End schedules element
            wrtr.WriteEndDocument();
            wrtr.Close();
        }
    }
}


Klassen bruger nævnte arrayliste til at iterer.
Avatar billede bauerdata Nybegynder
19. oktober 2009 - 17:10 #3
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
dage = {"mandag":"Monday",
        "tirsdag":"Thusday",
        "onsdag":"Wednesday",
        "torsdag":"Thusday",
        "fredag":"Friday",
        "lørdag":"Saturday",
        "søndag":"Sunday",
}

# åber inddata fil
inddata = open("inddata.txt")

print """<?xml version="1.0" encoding="iso-8859-1" ?>
<Schedules>
  <Schedule Weeknumber="">"""

line = inddata.readline().strip()

while line:
    dag = line
    if dag in dage:
        print '    <%s Lecthures="">' % dage[dag]

    print '      <Class name="%s" />' % inddata.readline().strip()
    print '      <EducationType name="%s" />' % inddata.readline().strip()
    print '      <FromTime name="%s" />' % inddata.readline().strip()
    print '      <EndTime name="%s"/>' % inddata.readline().strip()
    print '      <Weeks name="%s"/>' % inddata.readline().strip()
    print '      <Location name="%s" />' % inddata.readline().strip()

    if dag in dage:
        print '    </%s>' % dage[dag]

    line = inddata.readline().strip()

print """  </Schedule>
</Schedules>"""
Avatar billede hellfishdk Nybegynder
19. oktober 2009 - 17:40 #4
#3 - det er da vist ikke C#...? :)
Avatar billede arne_v Ekspert
19. oktober 2009 - 18:26 #5
Det er Python.
Avatar billede kza Nybegynder
19. oktober 2009 - 23:03 #6
Skal du bare have dataene ned i en XML fil, eller skal du også arbejde med dataene?

/Klaus
Avatar billede arne_v Ekspert
20. oktober 2009 - 03:10 #7
Følgende eksempel er ikke simpelt og det outputter ikke XML i det ønskede format, men jeg synes at det illustrerer diverse teknikker:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Xml;

namespace E
{
    public static class Utils
    {
        public static string ToCapital(this string s)
        {
            return s.Substring(0,1).ToUpper() + s.Substring(1).ToLower();
        }
    }
    public class StructuredItem
    {
        public string WeekDay { get; set; }
        public string Course { get; set; }
        public string CourseType { get; set; }
        public string StartTime { get; set; }
        public string EndTime { get; set; }
        public string Weeks { get; set; }
        public string Location { get; set; }
        public override string ToString()
        {
            return "(" + WeekDay + ";" + Course + ";" + CourseType + ";" + StartTime + ";" + EndTime + ";" + Weeks + ";" + Location + ")";
        }
    }
    public class OrganizedItem
    {
        public string Course { get; set; }
        public string CourseType { get; set; }
        public string Time { get; set; }
        public string Location { get; set; }
        public override string ToString()
        {
            return "(" + Course + ";" + CourseType + ";" + Time + ";" + Location + ")";
        }
    }
    public class Convert
    {
        public static List<string> LoadRaw(string fnm)
        {
            List<string> res = new List<string>();
            using(StreamReader sr = new StreamReader(fnm))
            {
                string line;
                while((line = sr.ReadLine()) != null)
                {
                    res.Add(line);
                }
            }
            return res;
        }
        public static List<StructuredItem> RawToStructured(List<string> data)
        {
            List<StructuredItem> res = new List<StructuredItem>();
            string day = null;
            int ix = 0;
            while(ix < data.Count)
            {
                if(data[ix].EndsWith("dag"))
                {
                    day = data[ix];
                    ix++;
                }
                else
                {
                    StructuredItem itm = new StructuredItem();
                    itm.WeekDay = day;
                    itm.Course = data[ix];
                    ix++;
                    itm.CourseType = data[ix];
                    ix++;
                    itm.StartTime = data[ix];
                    ix++;
                    itm.EndTime = data[ix];
                    ix++;
                    itm.Weeks = data[ix];
                    ix++;
                    itm.Location = data[ix];
                    ix++;
                    res.Add(itm);
                }
            }
            return res;
        }
        private static readonly string[] daynames = (new CultureInfo("da-DK")).DateTimeFormat.DayNames;
        public static Dictionary<int, Dictionary<DayOfWeek, List<OrganizedItem>>> StructuredToOrganized(List<StructuredItem> data)
        {
            Dictionary<int, Dictionary<DayOfWeek, List<OrganizedItem>>> res = new Dictionary<int, Dictionary<DayOfWeek, List<OrganizedItem>>>();
            foreach(StructuredItem itm in data)
            {
                //DayOfWeek day = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), itm.WeekDay.ToCapital());
                DayOfWeek day = (DayOfWeek)Array.FindIndex(daynames, dn => dn.Equals(itm.WeekDay));
                OrganizedItem newitm = new OrganizedItem();
                newitm.Course = itm.Course;
                newitm.CourseType = itm.CourseType;
                newitm.Time = itm.StartTime + " - " + itm.EndTime;
                newitm.Location = itm.Location;
                foreach(string wintval in itm.Weeks.Split(','))
                {
                    string[] wparts = wintval.Split('-');
                    int wstart;
                    int wend;
                    if(wparts.Length == 1)
                    {
                        wstart = int.Parse(wparts[0]);
                        wend = wstart;
                    }
                    else
                    {
                        wstart = int.Parse(wparts[0]);
                        wend = int.Parse(wparts[1]);
                    }
                    for(int w = wstart; w <= wend; w++)
                    {
                        if(!res.ContainsKey(w))
                        {
                            res.Add(w, new Dictionary<DayOfWeek, List<OrganizedItem>>());
                        }
                        if(!res[w].ContainsKey(day))
                        {
                            res[w].Add(day, new List<OrganizedItem>());
                        }
                        res[w][day].Add(newitm);
                    }
                }
            }
            return res;
        }
        public static XmlDocument OrganizedToXml(Dictionary<int, Dictionary<DayOfWeek, List<OrganizedItem>>> data)
        {
            XmlDocument doc = new XmlDocument();
            doc.AppendChild(doc.CreateElement("plan"));
            foreach(int w in data.Keys.OrderBy(w => w))
            {
                XmlElement welm = doc.CreateElement("week");
                welm.SetAttribute("no", w.ToString());
                doc.DocumentElement.AppendChild(welm);
                foreach(DayOfWeek day in data[w].Keys.OrderBy(d => d))
                {
                    XmlElement dayelm = doc.CreateElement("day");
                    dayelm.SetAttribute("name", day.ToString());
                    welm.AppendChild(dayelm);
                    foreach(OrganizedItem itm in data[w][day])
                    {
                        XmlElement itmelm = doc.CreateElement("item");
                        dayelm.AppendChild(itmelm);
                        XmlElement elm1 = doc.CreateElement("course");
                        elm1.AppendChild(doc.CreateTextNode(itm.Course));
                        itmelm.AppendChild(elm1);
                        XmlElement elm2 = doc.CreateElement("course-type");
                        elm2.AppendChild(doc.CreateTextNode(itm.CourseType));
                        itmelm.AppendChild(elm2);
                        XmlElement elm3 = doc.CreateElement("time");
                        elm3.AppendChild(doc.CreateTextNode(itm.Time));
                        itmelm.AppendChild(elm3);
                        XmlElement elm4 = doc.CreateElement("location");
                        elm4.AppendChild(doc.CreateTextNode(itm.Location));
                        itmelm.AppendChild(elm4);
                    }
                }
            }
            return doc;
        }
    }
    public class Program
    {
        public static void Main(string[] args)
        {
            List<string> raw = Convert.LoadRaw(@"C:\cbs.txt");
            foreach(string s in raw)
            {
                Console.WriteLine(s);
            }
            List<StructuredItem> structured = Convert.RawToStructured(raw);
            foreach(StructuredItem itm in structured)
            {
                Console.WriteLine(itm);
            }
            Dictionary<int, Dictionary<DayOfWeek, List<OrganizedItem>>> organized = Convert.StructuredToOrganized(structured);
            foreach(int w in organized.Keys.OrderBy(w => w))
            {
                Console.WriteLine("Week: " + w);
                foreach(DayOfWeek day in organized[w].Keys.OrderBy(d => d))
                {
                    Console.WriteLine("  Day: " + day);
                    foreach(OrganizedItem itm in organized[w][day])
                    {
                        Console.WriteLine("    " + itm);
                    }
                }
            }
            XmlDocument doc = Convert.OrganizedToXml(organized);
            doc.Save(Console.Out);
            Console.ReadKey();
        }
    }
}
Avatar billede arne_v Ekspert
20. oktober 2009 - 03:11 #8
Jeg ændrede fra XmlTextWriter tiL XmlDocument, fordi jeg ville separere XML struktur fra selve udskrivningen.
Avatar billede hellfishdk Nybegynder
06. november 2009 - 15:29 #9
Endelig fik jeg tid til at se videre på mit projekt.

arne_v, det er rigtig godt ud. Jeg har rettet den til så jeg skriver ind i en xml. Men iterationen du laver i OrganizedToXml, er der lidt bøvl med:
* Ugenumrene tælles op. Her skal det bare være denne (igangværende) uge
* Iterationen af ugen skema starte med mandagens skema i dagens dag, altså i dag.
* Så ser det ud til at for hver lektion der er, starter iterationen forfra(?)

Men ellers er din løsning ret interessant, især fordi du ikke anvender ArrayList, men List<> og Dictionary. Det kan være jeg skal til at lærer at bruge disse istedet for ArrayList.
Avatar billede arne_v Ekspert
06. november 2009 - 17:18 #10
List<> er en type sikker udgave af ArrayList.

Fremfor at udskrive for alle uger kan du nemt kun hente nuvaerende uge.
Avatar billede hellfishdk Nybegynder
08. november 2009 - 15:06 #11
Xml'en jeg får ud viser ugens dage 7 gange med forskelligt indhold for hver:

<?xml version="1.0" encoding="utf-8" ?>
- <Schedules>
- <Week no="45">
- <day name="Monday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>Ks71 Euler Hermes Aud.</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP210 British American Tobacco Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>Ks71 Euler Hermes Aud.</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP210 British American Tobacco Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>Ks71 Euler Hermes Aud.</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP210 British American Tobacco Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>Ks71 Euler Hermes Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP210 British American Tobacco Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP210 British American Tobacco Aud.</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
  </day>
- <day name="Monday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>12:35 - 14:25</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
  </day>
- <day name="Tuesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP210 British American Tobacco Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 11:40</time>
  <location>SPs05 KPMG Aud.</location>
  </item>
  </day>
- <day name="Wednesday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>8:00 - 9:50</time>
  <location>SPs10 Deloitte Aud.</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>PHs15</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>12:35 - 14:25</time>
  <location>SP107</location>
  </item>
- <item>
  <course>MØK_Datalogi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>14:25 - 16:15</time>
  <location>SP107</location>
  </item>
  </day>
- <day name="Thursday">
- <item>
  <course>MØK_Funktioner af 2 variable og matrixregning, 1.år</course>
  <course-type>Undervisning</course-type>
  <time>9:50 - 14:25</time>
  <location>SPs16 PriceWaterHouseCoopers</location>
  </item>
  </day>
- <day name="Friday">
- <item>
  <course>MØK_Erhvervsøkonomi, 1. år</course>
  <course-type>Undervisning</course-type>
  <time>8:00 - 9:50</time>
  <location>SP201 Danske Bank Aud.</location>
  </item>
- <item>
  <course>MØK_Afsætningsøkonomi, 1. år</course>
  <course-type>Øvelser</course-type>
  <time>9:50 - 11:40</time>
  <location>Ks71 Euler Hermes Aud.</location>
  </item>
  </day>
  </Week>
  </Schedules>

Jeg tror det er den her foreach der gør at jeg får ugens indhold vist så mange gange?

foreach (DayOfWeek day in data[w].Keys)
                {
                    XmlElement dayelm = doc.CreateElement("day");
                    dayelm.SetAttribute("name", day.ToString());
                    welm.AppendChild(dayelm);
                    foreach (OrganizedItem itm in data[w][day])
                    {
                        XmlElement itmelm = doc.CreateElement("item");
                        dayelm.AppendChild(itmelm);
                        XmlElement elm1 = doc.CreateElement("course");
                        elm1.AppendChild(doc.CreateTextNode(itm.Course));
                        itmelm.AppendChild(elm1);
                        XmlElement elm2 = doc.CreateElement("course-type");
                        elm2.AppendChild(doc.CreateTextNode(itm.CourseType));
                        itmelm.AppendChild(elm2);
                        XmlElement elm3 = doc.CreateElement("time");
                        elm3.AppendChild(doc.CreateTextNode(itm.Time));
                        itmelm.AppendChild(elm3);
                        XmlElement elm4 = doc.CreateElement("location");
                        elm4.AppendChild(doc.CreateTextNode(itm.Location));
                        itmelm.AppendChild(elm4);
                    }
                }
Avatar billede arne_v Ekspert
08. november 2009 - 23:35 #12
Jeg får ikke den gentagelse med mit program på de viste data.

Kan du give mig data og komplet kode, så jeg kan teste?
Avatar billede hellfishdk Nybegynder
09. november 2009 - 00:39 #13
selvfølgelig kan du det, er der en mail jeg kan sende det til, eller eller skal jeg smide alt koderværk op her?
Avatar billede arne_v Ekspert
09. november 2009 - 03:51 #14
Du kan smide alt op her.

Eller hvis det er alt for stort, så send en email. Min email adresse står hvis du klikker på mit navn. Ellers er jeg ikke supersvær at google.

Jeg vil så smide det relevante kode op med løsning op.
Avatar billede arne_v Ekspert
10. november 2009 - 03:29 #15
OK.

Når man kun vil have en uge skal man naturligvis ikke bruge:

foreach(int w in data.Keys.OrderBy(w => w))

men:

foreach (int w in data.Keys.OrderBy(w => w==weekNum))

duer altså ikke - den tager alle uger men sorterer dem efter hvorvidt det er nuværende uge eller ej.

Den simple:

int w = weekNum;

gør det du vil !
Avatar billede hellfishdk Nybegynder
10. november 2009 - 09:33 #16
Nu virker det som en drøm :)

Tusind tak for at du ville bruge tid på at hjælpe med få løst problemet.

Smid endelig et svar :)
Avatar billede arne_v Ekspert
10. november 2009 - 14:59 #17
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