Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pomoc oko LINQ-A

[es] :: .NET :: pomoc oko LINQ-A

[ Pregleda: 1687 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kasooo
Novi Sad

Član broj: 124627
Poruke: 12



Profil

icon pomoc oko LINQ-A31.05.2010. u 16:11 - pre 169 meseci
Pozdrav, novi sam u LinQ-u i naravno problemi.. . Parsiram neki XML koji sam pojednostavio jer je pravi ogroman.
Pokusavam da uradim sledecu stvar...potrebno je da vratim za odgovarajuci targetName,sve njegove sourceName-ove.U ovom slucaju za Name2 trebo bi da vratim listu svih njegovih sourceName-ova.(Name1 i ostale ako ih ima).
Ovo sto sam ja uradio jeste da vrati samo taggedValue koje pronadje za targetName i String koji mu prosledim...

Code (csharp):

 private XDocument xmlDocument;

 internal List<String> get(String targetName)
        {
            var queryResult =
                from c in xmlDocument.Descendants("Element").Descendants("TaggedValue")
                where (c.Attribute("value").Value == "targetName")&&(c.Attribute("value").Value== targetName)
                select c;
         .
         .
         .
        }
 

Code (xml):

<root>
<Element>
     <ModelElement>
           <TaggedValue tag="sourceName" value="Name1"/>
        <TaggedValue tag="targetName" value="Name2"/>
     </ModelElement>
 </Element>          
            .
            .
            .
  <Element>
       <ModelElement>
           <TaggedValue tag="sourceName" value="Name1"/>
        <TaggedValue tag="targetName" value="Name3"/>
     </ModelElement>
</Element>
</root>
 



[Ovu poruku je menjao mmix dana 31.05.2010. u 17:23 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: pomoc oko LINQ-A31.05.2010. u 16:24 - pre 169 meseci
zar ti nije jednostavnije ovo preko XPatha?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

kasooo
Novi Sad

Član broj: 124627
Poruke: 12



Profil

icon Re: pomoc oko LINQ-A31.05.2010. u 16:27 - pre 169 meseci
Vec sam krenuo sa LInQ-om...ali sam se na ovome zakuco.
Svaka pomoc je dobrodosla :)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: pomoc oko LINQ-A31.05.2010. u 16:36 - pre 169 meseci
Pa ubaci osnovni xpath u XPathSelectElements() ekstenziju :) pa izvuci parent.Elements()

ako bas hoces LINq2Xml, ali ja i dalje mislim da ti eje najjednostavnije jedan dobar xpath i dve linije c# koda.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

kasooo
Novi Sad

Član broj: 124627
Poruke: 12



Profil

icon Re: pomoc oko LINQ-A31.05.2010. u 16:38 - pre 169 meseci
Ne kapiram,posto nisam koristio XPath ...
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: pomoc oko LINQ-A31.05.2010. u 16:50 - pre 169 meseci
Ok, onda ajde da se zadrzimo na ovome LINQu

Vec imas kontekst izabranih taggedvalue nodova, izrovaris kroz parrenta u decu koja su sourceName ili kroz siblings unutar taga (ako ti je source name uvek iza ili ispred)


Code (csharp):

            var queryResult =
                from c in xmlDocument.Descendants("Element").Descendants("TaggedValue")
                where (c.Attribute("value").Value == "targetName")&&(c.Attribute("value").Value== targetName)
                select c.Parent.Descendants("sourceName").Attribute("value");

            var queryResult =
                from c in xmlDocument.Descendants("Element").Descendants("TaggedValue")
                where (c.Attribute("value").Value == "targetName")&&(c.Attribute("value").Value== targetName)
                select c.ElementsBeforeSelf("sourceName").Attribute("value");

 


Nemam ovde VS, mozda za ovo fali neka ekstenzija, ali trebalo bi da je to to, vici ako ne radi.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

kasooo
Novi Sad

Član broj: 124627
Poruke: 12



Profil

icon Re: pomoc oko LINQ-A31.05.2010. u 18:03 - pre 169 meseci
Code:
select c.Parent.Descendants("sourceName").Attribute("value");


U select-u ne dozvoljava Attribute() vec Attributes()....Uglavnom nekako sam se izvuko iz 2 upita,nista jednostavnije nije moglo,koliko mi se cini...Uglavnom problem je resen.Hvala puno!

[Ovu poruku je menjao kasooo dana 31.05.2010. u 22:53 GMT+1]
 
Odgovor na temu

kasooo
Novi Sad

Član broj: 124627
Poruke: 12



Profil

icon Re: pomoc oko LINQ-A26.06.2010. u 09:53 - pre 168 meseci
Imam jos jedno pitanje ali sada vezano za LinQ to Objects.

Imam klasu ObjectModel koja sadrzi listu paketa
Code:
List<Package> packages;
.Klasa Package sadrzi listu klasa
Code:
List<Clas> classes;
.
Potrebno je da u jednoj metodi ,koja se nalazi u ObjectModel-u , na osnovu imena klase vratim citav objekat Clas.Kako bi to moglo da se uradi?
 
Odgovor na temu

[es] :: .NET :: pomoc oko LINQ-A

[ Pregleda: 1687 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.