Frage

Ich habe wie Start Gefühl zu XML einige lustige Sachen mit meinen Delicious Bookmarks und LINQ zu tun, und ich frage mich, ob es einen Weg, um das Tag-Attribut in aufzuspalten LINQ.

Was habe ich gemeint mit das Tag in LINQ geteilt wurde für jeden Post-Element eine Sammlung von Zeichenketten zu erzeugen, so dass das erwartete Ergebnis wäre eine allgemeine Sammlung von post Elemente sein, mit seinen Attributen als Eigenschaften , wo die tag Eigenschaft ist selbst ein weitere Sammlung von Saiten, mit den Elementen jeden Tag zu sein.

Für diejenigen, die nicht sehr vertraut mit delicious.com exportierten xml, Heres die Grundstruktur eines Elements:

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

Hier ist der Code-Snippet Ich verwende:

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

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

Alle Ideen, Vorschläge, würden Kommentare wirklich geschätzt werden.

War es hilfreich?

Lösung

Was ist Ihre gewünschte Ausgabe tatsächlich gefallen hat? Möchten Sie eine Reihe von jedem Wert in dem „Tag“ Feld?

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

Das würde Ihnen eine Liste von Arrays. Es ist schwer zu sagen, wie zu erreichen, was Sie wollen, da es nicht sehr gut angegeben ist.

Andere Tipps

string-Klasse hat eine Split-Methode.
Ist das, was Sie suchen?

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

Was ich tat, war ‚Set‘ zu verwenden und den Wert dieser Variablen zugewiesen und verwendet dann eingestellt zu manipulieren, um fortzufahren, so dass ich am Ende konnte es nur Abfrage in meine Linq verwenden, wie es in einem war bilden, so dass jetzt nützlich für mich war. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top