在XSLT文件上载中添加XSLT验证

时间:2017-04-07 12:54:46

标签: ruby-on-rails xml validation xslt

我有一个带有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文件的语法?

2 个答案:

答案 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