В настоящее время у меня есть XML-файл, который правильно читается, за исключением одной части. Это список элементов, и иногда один элемент имеет несколько штрих-кодов. В моем коде он только вытаскивает первый. Как я могу перебирать несколько штрих-кодов. Пожалуйста, смотрите код ниже:Чтение файла XML с помощью Nokogiri
def self.pos_import(xml)
Plu.transaction do
Plu.delete_all
xml.xpath('//Item').each do |xml|
plu_import = Plu.new
plu_import.update_pointer = xml.at('Update_Type').content
plu_import.plu = xml.at('item_no').content
plu_import.dept = xml.at('department').content
plu_import.item_description = xml.at('item_description').content
plu_import.price = xml.at('item_price').content
plu_import.barcodes = xml.at('UPC_Code').content
plu_import.sync_date = Time.now
plu_import.save!
end
end
Мой тестовый XML-файл выглядит следующим образом:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<items>
<Item>
<Update_Type>2</Update_Type>
<item_no>0000005110</item_no>
<department>2</department>
<item_description>DISC-ALCOHOL PAD STERIL 200CT</item_description>
<item_price>7.99</item_price>
<taxable>No</taxable>
<Barcode>
<UPC_Code>0000005110</UPC_Code>
<UPC_Code>1234567890</UPC_Code>
</Barcode>
</Item>
</Items>
Любые идеи, как вытащить оба поля UPC_Code, и записать их в свою базу данных?
Это все еще только первый UPC_Code в поле. Он не помещает оба поля UPC_Code. –
Произошла ошибка в инструкции xpath. Он должен иметь два '//', чтобы найти все теги UPC_code. – infused
Я заметил это и изменил его в своем коде без везения. Все еще только первый UPC_Code. plu_import.barcodes = xml.xpath ('// UPC_Code'). Map (&: content) –