Существует ли простой метод анализа файлов XML в C #? Если так, то что?
Я использовал бы LINQ для XML, если Вы находитесь в.NET 3.5 или выше.
Это очень просто. Я знаю, что это стандартные методы, но можно создать собственную библиотеку для контакта с этим намного лучше.
Вот некоторые примеры:
XmlDocument xmlDoc= new XmlDocument(); // Create an XML document object
xmlDoc.Load("yourXMLFile.xml"); // Load the XML document from the specified file
// Get elements
XmlNodeList girlAddress = xmlDoc.GetElementsByTagName("gAddress");
XmlNodeList girlAge = xmlDoc.GetElementsByTagName("gAge");
XmlNodeList girlCellPhoneNumber = xmlDoc.GetElementsByTagName("gPhone");
// Display the results
Console.WriteLine("Address: " + girlAddress[0].InnerText);
Console.WriteLine("Age: " + girlAge[0].InnerText);
Console.WriteLine("Phone Number: " + girlCellPhoneNumber[0].InnerText);
кроме того, существуют [приблизительно 111] другие методы для работы с. Например, здесь . И я думаю, что нет никакого лучшего метода, чтобы сделать это; всегда необходимо ли выбирать его собой, что наиболее подходит для Вас.
Используйте пользу Схема XSD, чтобы создать ряд классов с xsd.exe и использовать XmlSerializer
для создания дерева объектов из XML и наоборот. Если у Вас есть немного ограничений на Вашу модель, Вы могли бы даже попытаться создать прямое отображение между Вами образцовые классы и XML с Xml*Attribute.
существует вводная статья о Сериализации XML на MSDN.
подсказка по Производительности: Построение XmlSerializer
является дорогим. Сохраните ссылку на Ваш XmlSerializer
экземпляр, если Вы намереваетесь анализировать/писать несколько XML-файлов.
При обработке большого объема данных (много мегабайтов) тогда, Вы хотите использовать XmlReader
для потоковой передачи, анализируют XML.
Что-либо еще (XPathNavigator
, XElement
, XmlDocument
и даже XmlSerializer
, если Вы сохраняете полный сгенерированный граф объектов) приведет к использование верхней памяти и также очень медленное время загрузки.
, Конечно, при необходимости во всех данных в памяти так или иначе, тогда у Вас не может быть большого выбора.
При использовании.NET 2.0 попробуйте XmlReader
и ее подклассы XmlTextReader
, и XmlValidatingReader
. Они обеспечивают быстрое, легкое (использование памяти, и т.д.), передают только способ проанализировать XML-файл.
, Если Вам нужно XPath
возможности, попробуйте XPathNavigator
. Если Вам нужен весь документ в попытке памяти XmlDocument
.
Используйте XmlTextReader
, XmlReader
, XmlNodeReader
и System.Xml.XPath
пространство имен. И ( XPathNavigator
, XPathDocument
, XPathExpression
, XPathnodeIterator
).
Обычно XPath
делает чтение XML легче, который является тем, что Вы могли бы искать.
Я не уверен, существует ли "лучшая практика для парсинга XML". Существуют многочисленные технологии, которым удовлетворяют для различных ситуаций. Какой способ использовать зависит от конкретного сценария.
можно пойти с LINQ to XML, XmlReader
, XPathNavigator
или даже регулярные выражения. Если Вы разрабатываете свои потребности, я могу попытаться дать некоторые предложения.