我有一个带有Paperclip文件上传的Rails应用程序,用于上传XSLT文件。我正在寻找在上传之前验证XSLT文件的方法。我可以使用paperclip
实际验证content_type validates_attachment_content_type :xslt, content_type: "application/xslt+xml", message: 'Invalid Content Type. Please upload a valid XSLT file'
有没有办法在保存之前完全验证XSLT文件的语法?
答案 0 :(得分:0)
是的,您可以使用氧气编辑器对其进行验证,也可以使用 Saxon dll编写.net工具进行验证。
答案 1 :(得分:0)
假设您有 xslt 文件,您可以使用 Nokogiri gem 并按如下方式操作:
validate :xslt_validation
def xslt_validation(xml_message)
xml = Nokogiri::XML(xml_message)
template = Nokogiri::XSLT(File.open(Rails.root.join('path from root to xslt')))
validation = template.transform(xml)
result = Hash.from_xml(validation.to_s)['Name of the error report']
errors.add(:xslt_field, "XSLT errors: #{result['Errors']}") if result['Errors'].present?
end