Самый легкий способ проверить и прочитать XML-файл в .NET?

Похоже, есть способ сделать это с помощью C ++. Вы можете взглянуть на библиотеку EasyXLS , есть бесплатная пробная версия, но, похоже, она стоит $ 295 за лицензию, поэтому, если это личный проект, он не может быть идеальным. Однако, если это проект для работы, вы можете попробовать его, потому что кажется, что библиотека очень проста в использовании (я думаю, исходя из названия), и вы можете устанавливать строки, столбцы и даже различные вкладки в лист Excel. Ссылка выше показывает пример того, как его использовать, надеюсь, это поможет.

Редактировать: C ++ является единственным языком, для которого имеется библиотека, совместимая с Linux. Я нашел здесь , который работает только с Windows, и этот метод работает только с VBA, который можно использовать, запустив его с Wine, но первый метод, кажется, единственный тот, который может работать на Linux без проблем.

6
задан dtc 14 January 2009 в 18:09
поделиться

3 ответа

В зависимости от уровня допуска и сообщения об ошибке Вы хотите иметь, Вы могли бы найти новый API XML представленным в.NET 3.5, чтобы быть полезными - классы XDocument, XElement, XAttribute и так далее, все от Системы. Xml. Пространство имен Linq.

Дизайн нового API XML был в большой степени под влиянием уроков, извлеченных из более старого дизайна XMLDocument, и намного более легок и легче использовать.

6
ответ дан 8 December 2019 в 13:03
поделиться

В основном, для получения движения проверки XSD необходимо будет использовать XmlReader с ReaderSettings, которые определяют, какой файл XSD проверить против, и события для ответа / фиксируют ошибки проверки.

Для чтения файла XSD используйте что-то вроде этого:

StreamReader xsdReader = new StreamReader(xsdFileName); 
XmlSchema Schema = new XmlSchema();
Schema = XmlSchema.Read(xsdReader, new ValidationEventHandler(XSDValidationEventHandler));

и обработчик событий для фиксации любых ошибок, которые могли бы обнаружиться при чтении XSD (например, если бы это сам по себе недопустимо) имел бы эту подпись:

private static void XSDValidationEventHandler(object sender, ValidationEventArgs e)

Сообщение об ошибке находится в e. Сообщение.

После того как Вам загрузили XSD в памяти, инстанцируете Вашего XmlReader и используете надлежащие настройки для осуществления проверки XSD:

XmlReaderSettings ReaderSettings = new XmlReaderSettings();    
ReaderSettings.ValidationType = ValidationType.Schema;
ReaderSettings.Schemas.Add(Schema);   
ReaderSettings.ValidationEventHandler += new ValidationEventHandler(XMLValidationEventHandler);

Этот обработчик событий ошибки имеет ту же подпись как та выше.

Затем на самом деле считайте файл с начала до конца:

XmlTextReader xmlReader = new XmlTextReader(xmlFileName);
XmlReader objXmlReader = XmlReader.Create(xmlReader, ReaderSettings);
while (objXmlReader.Read()) { }

Если какие-либо ошибки проверки произошли, Ваш обработчик событий назвали, и можно получить сообщения об ошибках там и например, отобразить их пользователю (или просто иметь флаг, указывающий, была ли проверка успешна или не - вызов :))

10
ответ дан 8 December 2019 в 13:03
поделиться

Используйте объекты XMLNode и XMLDocument.

Можно использовать методы Загрузки и LoadXML в XMLDocument для загрузки xml документа. Затем можно использовать SelectSingleNode для получения значения на основе XPath того узла. Или можно использовать метод SelectNodes для загрузки во всем узле.

Можно использовать Проверить метод объекта XMLDocument для проверки XML против XSD.

2
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: