どのように私は、LINQ(-to-XML)内の属性の値を分割することができますか?

StackOverflow https://stackoverflow.com/questions/899694

質問

私は、XMLへの私のおいしいのブックマークとLINQでいくつかの楽しいことをやって、スタートのように感じてきた、との内のタグ属性を分割する方法がある場合、私は思っていたLINQます。

私はのはは各ポスト要素の文字列のコレクションを生成していましたので、期待した結果がプロパティとしてその属性で、post要素の汎用コレクションだろうLINQ内のタグを分割して意味だことここで、tagプロパティは、その項目は、各タグであると、文字列の別のコレクション自体である。

delicious.comのエクスポートされたXMLとはかなり慣れていない方のために、素子の基本構造をhere'sます:

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

ここでは、コードのスニペットは、私が使用しているのです

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

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

すべてのアイデアは、提案、コメントは本当にいただければ幸いです。

役に立ちましたか?

解決

あなたの希望の出力で実際に何が好きですか?あなたは、「タグ」フィールド内の各値の配列をしたいですか?

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

それはあなたの配列のリストを与えるだろう。それは非常によく指定されていないので、それは、あなたが望むものを達成するためにどのように言うのは難しいます。

他のヒント

文字列クラスは、splitメソッドを持っています。
これは、あなたが探しているものですか?

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

それはにあったように、

私がやったことは「セット」を使用し、その変数に値を代入することでした、そして最後に、私はちょうど私のLINQクエリでそれを使用することができたので、操作を継続するように設定を使用しました今私には有用であった形。 :)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top