Domanda

Mi sento come iniziare a fare alcune cose divertenti con i miei deliziosi segnalibri e LINQ to XML, e mi chiedevo se c'è un modo per dividere l'attributo tag nel LINQ.

Quello che ho dire con dividere il tag all'interno di LINQ stava generando un insieme di stringhe per ogni elemento postale, in modo che il risultato atteso sarebbe un insieme generico di elementi post, con i suoi attributi come proprietà , in cui la proprietà tag è di per sé un'altra raccolta di stringhe, con i suoi oggetti di essere ogni tag.

Per chi non ha abbastanza familiarità con XML esportato di delicious.com, ecco la struttura di base di un elemento:

<post
    href="http://stackoverflow.com/"
    hash="e4a42d992025b928a586b8bdc36ad38d"
    description="Stack Overflow"
    tag="code development programming community tips answers reference"
    time="2009-05-22T19:44:09Z"
    extended="Stack Overflow is a programming Q & A site that's free."
    meta="e0bf85c9df073cd51cc5528637db5277"
 />

Ecco il frammento di codice che sto utilizzando:

   XDocument delicious = XDocument.Load("all.xml");

  var bookmarks = from posts in delicious.Descendants().Attributes("tag")
                  select (string)posts;

Tutte le idee, i suggerimenti, i commenti sarebbero molto apprezzato.

È stato utile?

Soluzione

Qual è l'output desiderato in realtà come? Vuoi una matrice di ogni valore nel campo "tag"?

var bookmarks = from posts in delicious.Descendants().Attributes("tag")
                    select ((string)posts).Split(" ");

Che possa dare un elenco di array. E 'difficile dire come realizzare ciò che si vuole, dal momento che non è molto ben specificato.

Altri suggerimenti

classe string ha un metodo Split.
E 'questo quello che stai cercando?

EDIT: string.join (Environment.NewLine, bookmarks.ToArray ());

Quello che ho fatto è stato quello di usare 'set' e assegnare il valore di quella variabile, e quindi utilizzato destinata a continuare a manipolare, così alla fine sono stato in grado di utilizzare solo nella mia query LINQ, come lo era in un modulo che è stato utile per me ora. :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top