Comment puis-je diviser la valeur d'un attribut dans LINQ (-À-XML)?
-
23-08-2019 - |
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é.
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. :)