2016-01-05 3 views
0

Мне нужно извлечь данные из XML-файла для моего проекта на основе C#. файл XML, как это:Извлечь данные из xml-файла в C#

<?xml version="1.0" encoding="utf-8" ?> 
<Chemicals> 
    <Titrates> 
     <Titrate Name="Hydrochloric Acid" Basisity="1" Molarity="10" Normality="10" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
       <Experiment Name="Redox"></Experiment> 
      </Experiments> 
     </Titrate> 
     <Titrate Name="Sulphuric Acid" Basisity="2" Molarity="20" Normality="50" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
      </Experiments> 
     </Titrate> 
     <Titrate Name="Nitric Acid" Basisity="3" Molarity="50" Normality="40" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
      </Experiments> 
     </Titrate> 
    </Titrates> 
    <Titrants> 
     <Titrant Name="Sodium Hydroxide" Acidity="1" Molarity="10" Normality="20" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
      </Experiments> 
     </Titrant> 
     <Titrant Name="Calcium Hydroxide" Acidity="1" Molarity="20" Normality="40" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
      </Experiments> 
     </Titrant> 

    </Titrants> 
    <Indicators> 
     <Indicator Name="Phenolphethalin" Color="Pink" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
      </Experiments> 
     </Indicator> 
     <Indicator Name="Methyl Orange" Color="Orange" > 
      <Experiments> 
       <Experiment Name="AcidBase"></Experiment> 
      </Experiments> 
     </Indicator> 
    </Indicators> 
</Chemicals> 

Как вы можете видеть, химические вещества подразделяются под титрантами, титруют и показатели, а затем каждый химикат может быть использован в нескольких экспериментах. Файл является просто образцом, поэтому, пожалуйста, игнорируйте аспект химии: P. Итак, для конкретного эксперимента мне нужно извлечь соответствующие данные обо всех химических веществах, которые будут использоваться в нем.

Пример:

Для AcidBase титрования мне нужно имя, молярность, Basisity и т.д. (под титрует) конкретные титруемый. То же самое и для титрантов и индикаторов, которые имеют AcidBase в своей части эксперимента.

+0

Что вы хотите сказать? Что у вас уже есть? –

+0

У вас есть XSD, который описывает данные в файле? Если нет, вам следует, вероятно, изучить использование [XDocument] (https://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument (v = vs.110) .aspx) или десериализацию объектов определите себя. – Chrono

+0

Знаете ли вы LINQ to XML? –

ответ

0

Вы можете десериализовать XML в объектеModel, используя XmlSerializer.

Затем вы можете легко получить доступ к информации в своем коде.

Смежные вопросы