@Panda_Code
Сognizer

Как записать данные в csv файл?

Доброго времени суток!

Вот xml:
<?xml version="1.0" encoding="utf-16"?>
<SimpleGeoName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Id>6295630</Id>
  <Name>Earth</Name>
  <Children>
    <SimpleGeoName>
      <Id>6255146</Id>
      <Name>Africa</Name>
      <Children>
        <SimpleGeoName>
          <Id>2589581</Id>
          <Name>Algeria</Name>
          <Children>
            <SimpleGeoName>
              <Id>2508226</Id>
              <Name>Wilaya de Aïn Defla</Name>
              <Children />
              <FCode>ADM1</FCode>
              <CountryCode>DZ</CountryCode>
            </SimpleGeoName>
            <SimpleGeoName>
              <Id>2507899</Id>
              <Name>Wilaya de Aïn Temouchent</Name>
              <Children />
              <FCode>ADM1</FCode>
              <CountryCode>DZ</CountryCode>
            </SimpleGeoName>
            <SimpleGeoName>
              <Id>2505569</Id>
              <Name>Wilaya de Batna</Name>
              <Children />
              <FCode>ADM1</FCode>
              <CountryCode>DZ</CountryCode>
            </SimpleGeoName>


Мне надо записать в csv файл данные из xml под ячейкой Name.
Я написал следующее:
require 'nokogiri'
require 'csv'

doc = File.open("continents.xml", encoding:'utf-8') { |file| Nokogiri::XML (file) }
# puts doc.xpath("//Name").text 

CSV.open("continents.csv", "wb") do |row|
  row << ['Name'] # заголовок ячейки
  row << doc.xpath("//Name").text  # данные под ячейкой Name
end


У меня получается совсем не то, 5fa567f28ba6f163995627.jpeg
Подскажите, как вносить данные в ячейки, по вертикали, что бы данные были под ячейкой Name .
У меня они идут по горизонтали.
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
CSV.open("continents.csv", "wb") do |row|
  row << ['Name'] # заголовок ячейки
  
  doc.xpath("//Name").each do |name|
    row << name.text
  end
end
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы