.NET 4.x Парсинг Xml - C# (179322)
Формулировка задачи:
Добрый день.
Помогите распарсить Xml документ. Это справочник ОКПД.
Весь Xml во вложения не влезет.
Вот вырезка из него чтобы было видно что нужно. Мне нужно достать все значения в переменные, из ID, Section, SectionName и так далее. Можно совершенно по тупому главное чтобы побыстрее и рабочий вариант.
Пробовал и сам, но у меня что то не получается достать. Сам парсил JSON, а тут что то не выходит.
<?xml version="1.0" encoding="utf-8"?>
<DataTable>
<xs:schema id="OKPD" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="OKPD" msdata:IsDataSet="true" msdata:MainDataTable="OKPD" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="OKPD">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="Section" type="xs:string" minOccurs="0" />
<xs:element name="SectionName" type="xs:string" minOccurs="0" />
<xs:element name="SubSection" type="xs:string" minOccurs="0" />
<xs:element name="SubSectionName" type="xs:string" minOccurs="0" />
<xs:element name="Kod" type="xs:string" minOccurs="0" />
<xs:element name="Name" type="xs:string" minOccurs="0" />
<xs:element name="Notes" type="xs:string" minOccurs="0" />
<xs:element name="SubKod1" type="xs:string" minOccurs="0" />
<xs:element name="SubKod2" type="xs:string" minOccurs="0" />
<xs:element name="SubKod3" type="xs:string" minOccurs="0" />
<xs:element name="SubKod4" type="xs:string" minOccurs="0" />
<xs:element name="WhenAdd" type="xs:dateTime" minOccurs="0" />
<xs:element name="Source" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<OKPD>
<OKPD diffgr:id="OKPD1" msdata:rowOrder="0">
<ID>38896</ID>
<Section>A</Section>
<SectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SectionName>
<SubSection>AА</SubSection>
<SubSectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SubSectionName>
<Kod>01</Kod>
<Name>Продукция и услуги сельского хозяйства и охоты</Name>
<SubKod1>01</SubKod1>
<WhenAdd>2016-06-07T00:14:23.03+03:00</WhenAdd>
<Source>myData.biz</Source>
</OKPD>
<OKPD diffgr:id="OKPD2" msdata:rowOrder="1">
<ID>38897</ID>
<Section>A</Section>
<SectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SectionName>
<SubSection>AА</SubSection>
<SubSectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SubSectionName>
<Kod>01.1</Kod>
<Name>Культуры сельскохозяйственные, продукция овощеводства и садоводства</Name>
<SubKod1>01</SubKod1>
<SubKod2>1</SubKod2>
<WhenAdd>2016-06-07T00:14:23.03+03:00</WhenAdd>
<Source>myData.biz</Source>
</OKPD>
<OKPD diffgr:id="OKPD3" msdata:rowOrder="2">
<ID>38898</ID>
<Section>A</Section>
<SectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SectionName>
<SubSection>AА</SubSection>
<SubSectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SubSectionName>
<Kod>01.11</Kod>
<Name>Культуры зерновые и прочие культуры сельскохозяйственные, не включенные в другие группировки</Name>
<SubKod1>01</SubKod1>
<SubKod2>11</SubKod2>
<WhenAdd>2016-06-07T00:14:23.03+03:00</WhenAdd>
<Source>myData.biz</Source>
</OKPD>
<OKPD diffgr:id="OKPD4" msdata:rowOrder="3">
<ID>38899</ID>
<Section>A</Section>
<SectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SectionName>
<SubSection>AА</SubSection>
<SubSectionName>ПРОДУКЦИЯ СЕЛЬСКОГО ХОЗЯЙСТВА, ОХОТЫ И ЛЕСНОГО ХОЗЯЙСТВА</SubSectionName>
<Kod>01.11.1</Kod>
<Name>Культуры зерновые</Name>
<SubKod1>01</SubKod1>
<SubKod2>11</SubKod2>
<SubKod3>1</SubKod3>
<WhenAdd>2016-06-07T00:14:23.033+03:00</WhenAdd>
<Source>myData.biz</Source>
</OKPD>
Решение задачи: «.NET 4.x Парсинг Xml»
textual
Листинг программы
private string GetAttributeValue (string xmlFileName, string tag, string attribute)
{
XmlTextReader reader = new XmlTextReader(xmlFileName);
string AttributeValue = null;
while (reader.Read())
{
if (reader.Name == tag)
{
AttributeValue = reader.GetAttribute(attribute);
break;
}
}
return AttributeValue;
}