Получение метаданных из XML-файлов - PullRequest
2 голосов
/ 30 мая 2011

Мне нужно получить метаданные из нескольких файлов XML.Структура xml-файла следующая:

<songs>
 <song_title> some title </song_title>
 <classification> some classification </classification>
 <song_text> some text </song_text>
 <singer>
    <sing> singer's name </sing>
    <gender> gender </gender>
    <bornYear> year </bornYear>
    <livePlace> live place </livePlace>
    <liveArea> live area </liveArea>
  </singer>
</songs>

Пользователь выбирает критерии поиска - живое место или живое место.Затем он вводит название места или области, которые он ищет.Мне нужно найти и отобразить ссылки на песни, которые имеют в своих метаданных место или область, которую ввел пользователь.Я использую .NET 3.5

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Этот ответ является скорее указателем ...

Вы можете использовать LINQ to XML для выполнения этой задачи.

Что такое LINQ to XML?

LINQ to XML - это встроенный в память интерфейс программирования XML с поддержкой LINQ, позволяющий работать с XML изв языках программирования .NET Framework.

LINQ to XML похож на объектную модель документа (DOM) в том смысле, что он переносит документ XML в память.Вы можете запросить и изменить документ, а после изменения вы можете сохранить его в файл или сериализовать и отправить через Интернет.Однако LINQ to XML отличается от DOM: он предоставляет новую объектную модель, которая имеет меньший вес и с ней легче работать, а также использует преимущества языковых улучшений в Visual C # 2008.

Затем можно выполнить поиски манипулировать любым элементом XML-документа, используя выражения запроса LINQ, как в следующем примере:

IEnumerable<XElement> partNos =
from item in purchaseOrder.Descendants("Item")
where (int) item.Element("Quantity") *
    (decimal) item.Element("USPrice") > 100
orderby (string)item.Element("PartNumber")
select item;
0 голосов
/ 31 мая 2011

Вы можете использовать XPathing, чтобы легко получить все, что вы хотите, если у вас есть отвращение к Linq

http://msdn.microsoft.com/en-us/library/ms256086%28VS.85%29.aspx

node.SelectNodes("Songs[/Singer/LivePlace='California']")

это получит все узлы Songs, у которых есть узел певца с узлом liveplace со значением California.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...