Разбор внешнего XML-файла с помощью C #, какой самый эстетичный способ? - PullRequest
0 голосов
/ 31 марта 2010

скажем, есть xml-файл, который я не создал, с известной схемой (например, rss).

как бы вы проанализировали это с C #? Вы сделаете это вручную с помощью XDocument и т. д., или вы будете использовать XMLSerializer и создать соответствующий класс? или вы использовали бы инструменты Visual Studio для генерации классов с использованием файла dtd (который вы напишите).

что вы думаете наиболее эстетичным, простым, не подверженным ошибкам способом?

Ответы [ 4 ]

2 голосов
/ 31 марта 2010

Посмотрите на класс XmlReader (и его подклассы)

http://msdn.microsoft.com/en-us/library/aa720470(VS.71).aspx

1 голос
/ 31 марта 2010

По моему мнению, самый простой метод с точки зрения сложности кодирования - создать объектную модель вне схемы и использовать ее с XmlSerializer для перехода между объектами и XML. В состав Visual Studio входит инструмент xsd.exe, который может генерировать код из файлов xsd.

Тем не менее, если схема сложная или написана динозавром, объектная модель будет уродливой и сложной для использования. Если ваш XML архаичен или плохо написан / спроектирован, иногда проще просто манипулировать им напрямую с помощью XmlDocument или XDocument. Из этих двух я бы предпочел более новую модель LINQ to XML (XDocument), потому что легче искать в XML и легче вставлять или манипулировать элементами / атрибутами / и т. Д.

0 голосов
/ 31 марта 2010

Посмотрите на System.Xml.Linq Пространство имен

Имеет очень хорошие классы, такие как XElement и XDocument и многие другие Поможет вам в круизе через xml разбор

0 голосов
/ 31 марта 2010

Я бы использовал XLINQ для его анализа, если у меня нет объектной модели для XML, и XmlSerializer, если у меня есть.

В прошлом я (и моя компания) использовали DataSets и методы Load / SaveXML.

...