al-1k
26-11-2016, 19:23
Добрый день, по аналогии из этой (http://forum.oszone.net/thread-298441.html) темы, необходимо из каталога "D:\Импорт\"с более чем 200 файлов xml извлечь данные(КПТ-Кадастровый план территории) и записать в файл csv.
Содержимое xml файлов делится на блоки по типу: 1) Parcel, 2)Building, 3)Construction
141697
<Parcel CadastralNumber="74:14:0101001:2" State="01" DateCreated="1996-07-10">
<Area>
<Area>842</Area>
<Unit>055</Unit>
</Area>
<Name>01</Name>
<Location>
<inBounds>1</inBounds>
<Address>
<ns2:OKATO>75238501000</ns2:OKATO>
<ns2:KLADR>74034001000014700</ns2:KLADR>
<ns2:Region>74</ns2:Region>
<ns2:District Name="Кусинский" Type="р-н"/>
<ns2:City Name="Куса" Type="г"/>
<ns2:Street Name="Зеленая" Type="ул"/>
<ns2:Level1 Type="д" Value="2"/>
<ns2:Note>обл. Челябинская, р-н Кусинский, г. Куса, ул. Петра Уткина, дом 23</ns2:Note>
</Address>
</Location>
<Category>003002000000</Category>
<Utilization Utilization="141003000000" ByDoc="для ведения личного подсобного хозяйства"/>
<CadastralCost Value="162404.96" Unit="383"/>
</Parcel>
<ObjectRealty>
<Building CadastralNumber="74:14:0104002:201">
<ObjectType>002001002000</ObjectType>
<AssignationBuilding>204003000000</AssignationBuilding>
<Area>408.8</Area>
<Address><ns2:OKATO>75238501000</ns2:OKATO>
<ns2:KLADR>74034001000003500</ns2:KLADR>
<ns2:Region>74</ns2:Region>
<ns2:District Name="Кусинский" Type="р-н"/>
<ns2:City Name="Куса" Type="г"/>
<ns2:Street Name="Зеленая" Type="ул"/>
<ns2:Level1 Type="д" Value="2"/></Address>
<CadastralCost Value="6142363.08" Unit="383"/>
</Building>
</ObjectRealty>
<ObjectRealty>
<Construction CadastralNumber="74:14:0101002:880">
<ObjectType>002001004000</ObjectType>
<AssignationName>Производственное (промышленное)</AssignationName>
<KeyParameters><ns4:KeyParameter Type="04" Value="54"/></KeyParameters>
<Address>
<ns2:OKATO>75238501000</ns2:OKATO>
<ns2:KLADR>74034001000001100</ns2:KLADR>
<ns2:PostalCode>456940</ns2:PostalCode>
<ns2:Region>74</ns2:Region>
<ns2:District Name="Кусинский" Type="р-н"/>
<ns2:City Name="Куса" Type="г"/>
<ns2:Street Name="Михаила Бубнова" Type="ул"/>
<ns2:Level1 Type="д" Value="11"/>
<ns2:Note>Россия, Челябинская обл., г. Куса, ул. Бубнова, д. 11</ns2:Note>
</Address>
</Construction>
</ObjectRealty>
Возможно есть еще какие-то блоки, но интересуют только эти. Результат содержимого CSV должен отображаться приблезательно так с подсталенными значениями:
Строка 1;Parcel CadastralNumber;Building CadastralNumber;Construction CadastralNumber;ObjectType;State;DateCreated;AssignationBuilding;AssignationName;Area;Unit;Inaccurac y;Name;OKATO;KLADR;Region;District Name;District Type;City Name;City Type;Street Name;Street Type;Level1 Type;Level1 Value;Other;Note;Category;Utilization Utilization;Utilization ByDoc;CadastralCost Value;CadastralCost Unit
Содержимое xml файлов делится на блоки по типу: 1) Parcel, 2)Building, 3)Construction
141697
<Parcel CadastralNumber="74:14:0101001:2" State="01" DateCreated="1996-07-10">
<Area>
<Area>842</Area>
<Unit>055</Unit>
</Area>
<Name>01</Name>
<Location>
<inBounds>1</inBounds>
<Address>
<ns2:OKATO>75238501000</ns2:OKATO>
<ns2:KLADR>74034001000014700</ns2:KLADR>
<ns2:Region>74</ns2:Region>
<ns2:District Name="Кусинский" Type="р-н"/>
<ns2:City Name="Куса" Type="г"/>
<ns2:Street Name="Зеленая" Type="ул"/>
<ns2:Level1 Type="д" Value="2"/>
<ns2:Note>обл. Челябинская, р-н Кусинский, г. Куса, ул. Петра Уткина, дом 23</ns2:Note>
</Address>
</Location>
<Category>003002000000</Category>
<Utilization Utilization="141003000000" ByDoc="для ведения личного подсобного хозяйства"/>
<CadastralCost Value="162404.96" Unit="383"/>
</Parcel>
<ObjectRealty>
<Building CadastralNumber="74:14:0104002:201">
<ObjectType>002001002000</ObjectType>
<AssignationBuilding>204003000000</AssignationBuilding>
<Area>408.8</Area>
<Address><ns2:OKATO>75238501000</ns2:OKATO>
<ns2:KLADR>74034001000003500</ns2:KLADR>
<ns2:Region>74</ns2:Region>
<ns2:District Name="Кусинский" Type="р-н"/>
<ns2:City Name="Куса" Type="г"/>
<ns2:Street Name="Зеленая" Type="ул"/>
<ns2:Level1 Type="д" Value="2"/></Address>
<CadastralCost Value="6142363.08" Unit="383"/>
</Building>
</ObjectRealty>
<ObjectRealty>
<Construction CadastralNumber="74:14:0101002:880">
<ObjectType>002001004000</ObjectType>
<AssignationName>Производственное (промышленное)</AssignationName>
<KeyParameters><ns4:KeyParameter Type="04" Value="54"/></KeyParameters>
<Address>
<ns2:OKATO>75238501000</ns2:OKATO>
<ns2:KLADR>74034001000001100</ns2:KLADR>
<ns2:PostalCode>456940</ns2:PostalCode>
<ns2:Region>74</ns2:Region>
<ns2:District Name="Кусинский" Type="р-н"/>
<ns2:City Name="Куса" Type="г"/>
<ns2:Street Name="Михаила Бубнова" Type="ул"/>
<ns2:Level1 Type="д" Value="11"/>
<ns2:Note>Россия, Челябинская обл., г. Куса, ул. Бубнова, д. 11</ns2:Note>
</Address>
</Construction>
</ObjectRealty>
Возможно есть еще какие-то блоки, но интересуют только эти. Результат содержимого CSV должен отображаться приблезательно так с подсталенными значениями:
Строка 1;Parcel CadastralNumber;Building CadastralNumber;Construction CadastralNumber;ObjectType;State;DateCreated;AssignationBuilding;AssignationName;Area;Unit;Inaccurac y;Name;OKATO;KLADR;Region;District Name;District Type;City Name;City Type;Street Name;Street Type;Level1 Type;Level1 Value;Other;Note;Category;Utilization Utilization;Utilization ByDoc;CadastralCost Value;CadastralCost Unit