Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


LINQ to XML

Postades av 2008-08-15 15:39:00 - Fredrik Leufkens, i forum c# (c-sharp), Tråden har 5 Kommentarer och lästs av 1031 personer

Jag tycker det här med LINQ är ganska kul...

Däremot...så har jag ett problem. Och det är när man skall skapa en samling entiteter från ett xml-ark.

Här är min kod.

            var Family = from input in FamilyResponse.Descendants(xnops + "patent-family")
                         select new Entities.PatentFamily
                         {
                             //PatentFamily har en property "List<FamilyMember> FamilyMembers"                             
                             FamilyMembers =
                             {
                                 from fm in input.Descendants(xnops + "family-member")                                 
                                 select new Entities.FamilyMember 
                                 {
                                    //FamilyMember har en property "List<Document> Documents"
                                    Documents = 
                                    {
                                        from doc in fm.Descendants("document-id")
                                        where doc.Parent.Attribute("data-format").Value == "docdb"
                                        select new Entities.Document
                                        {
                                            //Document har följande egenskaper som jag försöker sätta:
                                            ReferenceType = doc.Parent.Name.LocalName,
                                            Country = doc.Element("country").Value,
                                            DocNumber = doc.Element("doc-number").Value,
                                            Kind = doc.Element("kind").Value
                                        }
                                    }
                                 }
                             }
                         };



Jag får en del kompileringsfel med ovan. Problemet består ju tror jag i att jag vill ha tag i under-egenskaper. (För att behålla referensen av vilka dokument som hör till vilka familjer)

//Fredrik L



Svara

Sv: LINQ to XML

Postades av 2008-08-15 16:27:15 - Johan Normén

Kan inte direkt hjälpa dig. men kan direkt säga. Wooo shit det är sådan här kod i alla fall jag försöker få folk att undvika skriva med LINQ under alla de seminarier jag hållt. Av många skäl.

För det första så blir koden stor och svårtläst. Det är jobbigt att både läsa och förstå vad du vill komma åt utan att behöva grotta för länge i alla select i alla projections du gör m.m. Tror även det är lite här du även skapar ditt problem.

Jag säger inte att det är bättre att göra på annat sätt, men tror det kommer bli både lättare för dig och även andra att ev justera och uppdatera din kod om du gör mindre anrop fast fler gånger istället och sen fyller till family objekt med rätt saker.

Ex. Först. Hämta ut det första du vill ha.
Sen hämtar du ut det andra du vill ha från ev det första och så vidare. Men inte i nestlad kod.

Dvs.

var något = Select någotFoo ...

var detAndraNågot = select detAndraNågotFoo from något...

var detTredjeNågot = select detTredjeNågotFoo ...

var family = new { A = något, B = setAndreNågot, C = detredjeNågot... }

OBS! min kod är bara pseudo så namnen skall ju självklart vara mer självbrskrivande... Men ville bara demostrera min tanke.

Jag tror detta kan hjälpa dig. För att göra det ännu snyggare kan man faktiskt göra metoder för varjhe select med beskrivande namn vad man hämtar ut.

public något GetNågot()
{
var något = select foo from ....

return ...
}

Mvh Johan




Svara

Sv: LINQ to XML

Postades av 2008-08-15 19:41:41 - Andreas Öhlund

Det finns en rätt bra dimecast om Linq to Xml. Kolla på den och se om det är något för dig:

http://www.dimecasts.net/Casts/CastFeedDetails/36


Svara

Sv:LINQ to XML

Postades av 2008-08-18 08:40:02 - Fredrik Leufkens

Ok... Jag är med på vad du menar..
Skall prova den här approchen och se om jag kommer närmare det jag söker.

Filmen som postades här innan var kanon den oxå! :)

//Fredrik L


Svara

Sv: LINQ to XML

Postades av 2008-08-18 09:42:14 - Fredrik Leufkens

Johan!
Verkligen ett kanon tips.. Tror poletten i hur man skall använda Linq to XML nu.

Jag skrev om koden i första inlägget till detta:


            string DocumentType = string.Empty;
            string DataFormat = string.Empty;

            var Family = from doc in FamilyResponse.Descendants(xnops + "patent-family")
                         select doc;

            var FamilyMembers = from fm in Family.Descendants(xnops + "family-member")
                               select fm;

            var Documents = from fmDocs in FamilyMembers.Descendants()
                           select fmDocs;
            
            Entities.PatentFamily newFamily = new Entities.PatentFamily();

            foreach (var thisFamily in FamilyMembers)
            {
                Entities.FamilyMember newMember = new Entities.FamilyMember();
                foreach (var Doc in Documents)
                {
                    Entities.Document newDoc = new Entities.Document();

                    DocumentType = Documents.ElementAt(0).Name.LocalName;
                    DataFormat = Documents.ElementAt(0).Attribute("data-format").Value;

                    newDoc.ReferenceType = DocumentType;
//På raden under här sker NullReferenceExeption. Varför då?
                    newMember.Documents.Add(newDoc);
                }
                newFamily.FamilyMembers.Add(newMember);
            }



Koden ovan fungerar mycket bra förutom när jag försöker lägga till ett objekt. (objektet är satt med ett värde på "ReferenceType", men ändå vill den inte lägga till objektet i listan.. Hur kommer detta sig? Vad har jag missat?

//Fredrik L


Svara

Sv:LINQ to XML

Postades av 2008-08-18 12:13:05 - Fredrik Leufkens

Ok. Löst det.

Problemet var iaf. att jag ju bara hade auto-properies för listpropertys i de olika klasser.

Så.. jag skapade en "lägg till"-metod i de olika klasserna som jag anropade när jag skulle lägga till nya objekt i listan. Metoden initierar listan ifall den är null.

//Fredrik L.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 707
27 958
271 751
845
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies