Как я могу разделить значение атрибута в LINQ(-to-XML)?

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

Вопрос

Мне захотелось начать делать какие-нибудь забавные вещи с моими восхитительными закладками и 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;

Любые идеи, предложения, комментарии были бы действительно оценены.

Это было полезно?

Решение

Каков на самом деле ваш желаемый результат?Вам нужен массив каждого значения в поле "тег"?

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

Это дало бы вам список массивов.Трудно сказать, как достичь того, чего вы хотите, поскольку это не очень хорошо определено.

Другие советы

класс string имеет метод Split.
Это то, что вы ищете?

Редактировать:строка.Присоединиться (среда.Перевод строки, закладки.К массиву());

Что я сделал, так это использовал 'set' и присвоил значение этой переменной, а затем использовал set для продолжения манипулирования, так что в конце я смог просто использовать его в своем запросе linq, поскольку он был в форме, которая теперь была мне полезна.:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top