1

我一直想开始用我美味的书签和 LINQ to XML 做一些有趣的事情,我想知道是否有办法LINQ 中拆分标记属性。

在 LINQ 中拆分标签的意思是为每个 post 元素生成一个字符串集合,因此预期的结果将是一个通用的post元素集合,其属性作为属性,其中tag属性本身就是另一个字符串集合,它的项目是每个标签。

对于那些对delicious.com 导出的 xml 不太熟悉的人,这里是元素的基本结构:

<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;

任何想法、建议、评论将不胜感激。

4

3 回答 3

1

string 类有一个 Split 方法。
这是你想要的?

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

于 2009-05-22T20:13:18.410 回答
1

你想要的输出实际上是什么样的?您想要“标签”字段中每个值的数组吗?

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

这会给你一个数组列表。很难说如何完成你想要的,因为它没有很好地指定。

于 2009-05-22T20:43:13.497 回答
1

我所做的是使用'set'并将值分配给该变量,然后使用set继续操作,所以最后我能够在我的linq查询中使用它,因为它的形式是现在对我有用。:)

于 2009-05-27T12:58:21.073 回答