Pergunta

Eu estive me sentindo como começar a fazer algumas coisas divertidas com os meus bookmarks deliciosos e LINQ para XML, e eu queria saber se existe uma maneira de dividir o atributo tag em LINQ.

O que eu quis dizer com dividir a tag dentro LINQ foi gerando um conjunto de cordas para cada elemento post, de modo que o resultado esperado seria uma coleção genérica de elementos post, com seus atributos como propriedades , em que a propriedade tag é em si uma outra coleção de cordas, com seus itens sendo cada tag.

Para aqueles que não bastante familiarizado com o delicious.com xml exportado, aqui está a estrutura básica de um 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"
 />

Aqui está o trecho de código que estou usando:

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

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

Todas as ideias, sugestões, comentários seria muito apreciada.

Foi útil?

Solução

Qual é a sua saída desejada realmente gosto? Você quer um array de cada valor no campo "tag"?

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

Isso iria dar-lhe uma lista de arrays. É difícil dizer como conseguir o que você quer, uma vez que não é muito bem especificado.

Outras dicas

classe string tem um método Split.
É isso que você está procurando?

EDIT: String.Join (Environment.NewLine, bookmarks.ToArray ());

O que eu fiz foi usar 'set' e atribuir o valor para essa variável, e então usado conjunto para continuar a manipular, então no final eu era capaz de apenas usá-lo na minha consulta LINQ, como foi em um formar que agora era útil para mim. :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top