Kom ihåg mig?
Home Menu

Menu


Xml to Linq

 
Ämnesverktyg Visningsalternativ
Oläst 2009-02-27, 14:14 #1
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Zupp fellas.

Min kund har följande Xml-dokument (mycket mycket större, visar endast behövlig mängd):
Kod:
<root>
 <y2009>
 <m2>
 <t>
 <d>25</d>
 <v1>269,27</v1>
 <v2>231,57</v2>
 <v3>226,63</v3>
 </t>
 <t>
 <d>26</d>
 <v1>267,38</v1>
 <v2>232,50</v2>
 <v3>231,57</v3>
 </t>
 </m2>
<y2009>
Jag vet att filen har väldigt dålig struktur, och man hade kunnat göra allt mycket enklare. Men nu är det som det är och kunden tillåter inga ändringar i strukturen (tydligen en massa flash-filer som hämtar data från denna fil).

<y2009> = Året då "posten" läggs till.
<m2> = Månaden då "posten" läggs till, m2 = februari.
<t> = Ingen aning, antagligen nån sorts wrapper.
<d> = Dagen då "posten" läggs till.
<v1>, <v2>, <v3> = Värden för dagen då "posten" läggs till.

Det kunden vill kunna göra är att via ett formulär, lägga till fler värden vid dagens datum. Värdena måste komma i följd, finns endast ett värde vid en dag, d.v.s. <v1>, så ska den skapa <v2> and so forth.

Jag har inte kommit långt själv. Jag har lyckats penetrera dokumentet och hamnat inne i rätt månad (<mx>). Men då kommer ju en massa <t>, det jag måste göra är att på nåt sätt iterera genom dessa för att hitta dagens datum inne i <d>, och därefter, på nåt sätt, kolla hur många värden det finns; och lägga till värdet man postar i formuläret i rätt ordning.

Ni har antagligen följdfrågor, så skicka de till mig i ett kuvert så uppdaterar jag huvudtråden därefter ;-)

My present code:
Kod:
    XDocument document = XDocument.Load(Server.MapPath("~/termPrice.xml"));

    String todaysYear = "y" + DateTime.Now.Year.ToString();
    String todaysMonth = "m" + DateTime.Now.Month.ToString();
    var todaysDay = DateTime.Now.ToString("dd");

    var items = from doc in document.Descendants(todaysYear)
          let month = (string)doc.Element(todaysMonth)
          // Här uppstår ju <t>-elementet.
          where doc.Element("d").Value == todaysDay
          select doc;

    foreach (XElement element in items) {
      Response.Write(element.ToString());
    }
Have a nice weekend!
peterbf är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:51.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017