Tag: xml

下载XML文件而不是使用Builder进行渲染

我目前正在使用Builder来进行自定义XML导出。 但是,当用户单击按钮时,我希望下载.xml而不是渲染。 我已经尝试使用send_data而不是render但这似乎被构建器覆盖了。 还使用ActiveAdmin(因此是member_action ) 在我的控制器中: member_action :show do @listing = Listing.find(params[:id]) respond_to do |format| format.html format.xml end end 链接到show.xml.builder xml.instruct! xml.XMLopener { |b| b….. …… …. } 我看了下面的几个链接,但我似乎无法让它工作。 有任何想法吗? 显然,使用当前代码它只是渲染,它完美地工作。 https://www.6.software.ibm.com/developerworks/education/x-rubyonrailsxml/x-rubyonrailsxml-a4.pdf http://danengle.us/2009/05/generating-custom-xml-for-your-rails -app /

使用Nokogiri从空标签中递归清理XML文档?

我有一个嵌套的XML文档,如下所示: test description 12345 我需要删除所有空的XML节点,如和 。 我最终得到了类似的东西: doc = Nokogiri::XML::DocumentFragment.parse <<-EOXML test description 12345 EOXML phone = doc.css(“phone”) phone.children.each do | child | child.remove if child.inner_text == ” end 上面的代码只删除了第一个空标记,例如 。 我无法进入嵌套块。 我想我需要一些递归策略。 我仔细阅读了Nokogiri文档,并检查了很多例子,但我还没有找到解决方案。 我怎样才能解决这个问题? 我正在使用Ruby 1.9.3和Nokogiri 1.5.10。

Savon将XML作为字符串返回,而不是哈希

我试图使用Savon解析SOAP响应。 响应是XML,但作为一个长字符串返回。 如果我使用#to_hash,整个XML对象仍然是一个字符串,现在存储在其中 hash[:response][:return] 这意味着它仍然是一个巨大的无法使用的混乱。 我的代码看起来像 response = soapClient.request(:get_sites_user_can_access) do soap.body = { :sessionid => session[:login_response][:login_return], :eid => user } end rep = response.to_hash pp rep[:get_sites_user_can_access_response][:get_sites_user_can_access_return] 我错过了从响应中获取有用信息的哪一步? 注意:遗憾的是,由于它包含的信息,我无法发布XML响应,但它看起来像一个整个XML文档存储为字符串。 它的类是Nori :: StringWithAttributes

如何使用Nokogiri使用本地dtd文件正确validationxml文件?

我有一个简单,有效的DTD和一个似乎符合DTD的有效XML文件,但Nokogiri正在生成大量validation输出,这意味着XML文件未通过validation。 dtd文件是: xml文件是: FOO SOFTWARE. The core global object. This is a special singleton object. It is used for internal Wayland protocol features. The sync request asks the server to emit the ‘done’ event on the returned wl_callback object. Since requests are handled in-order and events are delivered in-order, this can be used as a […]

使用ruby中的xmlsimple将哈希转换为XML

我有以下格式的哈希 { ‘1234’ => {“key1″=>1234,”key2″=>”sdfsdf”,”key3″=>”sdfsdfs”}, ‘234’ => {“key1″=>234,”key2″=>”sdfsdf”,”key3″=>”sdfsdfs”} } 我想将它转换为xml,如下所示 1234/Key1> sdfsdf sdfsdfs 234/Key1> sdfsdf sdfsdfs 问题是,xmlsimple没有这样做。 而不是推杆,它正在创建标签。 我想摆脱这个….任何帮助? 甚至ActiveSupport to_xml也是如此。 还有其他选择吗?

Nokogiri构建器在巨大的XML上表现?

我需要构建一个大约1-50 MB的巨大XML文件。 我认为使用构建器会足够有效,而且有点。 问题是,在程序到达最后一行后它不会立即结束,但Ruby仍在做几秒钟的事情,可能是垃圾收集? 之后程序终于结束了。 举一个真实的例子,我测量了构建XML文件的时间。 在构建XML时,它输出55秒(后面有一个数据库,所以需要很长时间),但是Ruby仍然会处理大约15秒钟,处理器就会变得疯狂。 伪/实际代码如下: … builder = Nokogiri::XML::Builder.with(doc) do |xml| build_node(xml) end … def build_node(xml) … xml[“#{namespace}”] if namespace xml.send(“#{elem_name}”, attrs_hash) do |elem_xml| … if has_children if type case type when XML::TextContent::PLAIN elem_xml.text text_content when XML::TextContent::COMMENT elem_xml.comment text_content when XML::TextContent::CDATA elem_xml.cdata text_content end else build_node(elem_xml) end end end end 请注意,我使用自己的类结构使用不同的方法,并且构建的速度是相同的,但在最后一行程序通常结束,但现在我被迫使用Nokogiri所以我必须找到一个解决方案。 在构建XML之后,我可以做些什么来避免X秒长的开销? […]

Savon:XML标签的数组

我正在使用Savon进行SOAP请求,在SOAP请求XML的某个地方,我需要生成这段代码: 最好的方法是什么?

如何检索nokogiri处理指令属性?

我正在使用Nokogiri解析XML。 我能够检索样式表。 但不是每个样式表的属性。 1.9.2p320 :112 >style = xml.xpath(‘//processing-instruction(“xml-stylesheet”)’).first => # style.name => “xml-stylesheet” style.content => “type=\”text/xsl\” href=\”CDA.xsl\”” 有没有简单的方法来获取类型,href属性值? 要么 唯一的方法是解析处理指令的内容(style.content)?

如何删除XML :: Simple输出中的标记?

我正在使用Perl和XML :: Simple模块创建XML文件。 我成功创建了XML文件,但问题是我的每个标签都有 标签。 我正在寻找任何可以避免 标签的选项。 我不能进行后处理来删除标签。 因为文件很大。 示例: joe@smith.com jsmith@yahoo.com bob@smith.com 我正在寻找(没有标签): joe@smith.com jsmith@yahoo.com bob@smith.com

使用Nokogiri获取包含特定属性名称的元素中的所有节点

我想使用Nokogiri来提取包含特定属性名称的元素中的所有节点。 例如,我想在下面的文档中找到包含属性“blah”的2个节点。 @doc = Nokogiri::HTML::DocumentFragment.parse <<-EOHTML Three’s Company A love triangle. test test test EOHTML 我在这个网站上找到了这个建议(见下文): http : //snippets.dzone.com/posts/show/7994 ,但它没有返回上面例子中的2个节点。 它返回一个空数组。 # get elements with attribute: elements = @doc.xpath(“//*[@*[blah]]”) 关于如何做到这一点的想法? 谢谢! 我在这里找到了这个