القضبان - قطاع XML استيراد من المساحة البيضاء وكسر الخط
-
22-09-2019 - |
سؤال
أنا عالق بشيء بسيط للغاية ولكن مزعج حقًا: لدي ملف XML مع عقدة واحدة ، حيث يتضمن المحتوى فواصل الخط و Whitspaces. للأسف لا أستطيع تغيير XML.
<?xml version="1.0" encoding="utf-8" ?>
<ProductFeed>
Acme Ltd. Fooproduct Foo Root :: Bar Catevory
وصلت إلى العقدة وأستطيع أن أقرأ منها دون مشكلة:
url = "http://feeds.somefeed/feed.xml.gz"
@source = open((url), :http_basic_authentication=>["USER", "PW"])
@gz = Zlib::GzipReader.new(@source)
@result = @gz.read
@doc = Nokogiri::XML(@result)
@doc.xpath("/ProductFeed/Vendors/Vendor").each do |manuf|
vendor = manuf.css("Name").first.text
manuf.xpath("//child::Product").each do |product|
product_name = product.css("Name").text
foocat = product.css("Category").text
puts "#{vendor} ---- #{product_name} ---- #{foocat} "
end
end
وينتج عنه:
ACME Ltd. ---- Fooproduct ----
Foo Root :: Bar Category
من الواضح أن هناك فترات فواصل بين الأسطر وتوقف علامات التبويب أو المسافات في السلسلة التي تم إرجاعها بواسطة Product.css ("الفئة"). نص.
هل يعرف أي شخص كيفية تجريد النتيجة من خطوط الخطوط والصنابير أو المساحات هنا؟
بدلاً من ذلك ، يمكنني أن أفعل ذلك في الخطوة التالية ، حيث أقوم باكتشاف "Foocat" مثل
barcat = Category.find_by_foocat(foocat)
شكرا على المساعدة!
فال
المحلول
يمكنك استخدم XSLT لإزالة جميع الأحرف غير الضرورية.
لا تنتمي إلى StackOverflow