Question

Je me sens comme commencer à faire quelques choses amusantes avec mes délicieux signets et LINQ à XML, et je me demandais s'il y a un moyen de diviser l'attribut de balise dans les LINQ.

Ce que j'ai voulu avec diviser la balise au sein LINQ générait une collection de chaînes pour chaque élément de poste, de sorte que le résultat attendu serait une collection générique d'éléments de post, avec ses attributs en tant que propriétés , où la propriété tag lui-même est une autre collection de cordes, avec ses éléments étant chaque balise.

Pour ceux qui ne connaissent bien le XML exporté de delicious.com, here's la structure de base d'un élément:

<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"
 />

Voici l'extrait de code que je utilise:

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

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

Toutes les idées, suggestions, commentaires serait vraiment apprécié.

Était-ce utile?

La solution

Quelle est votre sortie désirée en fait comme? Voulez-vous un tableau de chaque valeur dans le champ « tag »?

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

Cela vous donne une liste de tableaux. Il est difficile de dire comment accomplir ce que vous voulez, car il est pas très bien spécifié.

Autres conseils

classe de chaîne a une méthode de Split.
Est-ce que vous cherchez?

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

Ce que je faisais était d'utiliser « set » et affecter la valeur à cette variable, puis utilisé se poursuivre à manipuler, donc à la fin, j'ai pu utiliser simplement dans ma requête LINQ, comme il était dans un forme qui était maintenant utile pour moi. :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top