我有一个工作的应用程序,添加了Nokogiri,解析一些xml,在本地运行良好.
我的Gemfile包括: gem 'nokogiri'
我运行bundle install并验证了我的Gemfile.lock包含DEPENDENCIES...nokogiri
在我的控制器类中,我添加了(没想到我必须在本地出现错误,如果我没有):
class MydealController < ApplicationController
require 'rubygems'
require 'open-uri'
require 'nokogiri'
Run Code Online (Sandbox Code Playgroud)
当我使用我的浏览器获取使用nokogiri doc = Nokogiri::XML(getresult)Heroku崩溃的MydealController中的url时.
heroku logs 显示此错误 No such file to load -- nokogiri (LoadError)
看看当我git push heroku没有在许多安装的宝石列表中看到nokogiri 时会发生什么.Heroku说推进很好,但nokogiri没有列出,我得到上述错误......
我想在我的irb中输入德国的变形金刚但得到一个奇怪的错误.我可以输入任何äöü没有问题的字符,但每个都会ÄÖÜß导致以下错误:
$ irb
ruby-1.9.2-p136 :001 > ? # here I entered Ü but it displays only ?
/Users/lorenz/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/ruby-lex.rb:728:in
`block in lex_int2': invalid byte sequence in UTF-8 (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
我看过很多关于Ruby,rvm和UTF-8的SO问题,但都没有帮助.大多数都绑定到rails或数据库配置.我特意检查了以下内容:
语言环境设置正确
$ locale
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
Run Code Online (Sandbox Code Playgroud)
Terminal.app设置为Unicode(UTF-8)并正确设置Encoding.default_external:
$ irb
ruby-1.9.2-p136 :001 > Encoding.default_external
=> #<Encoding:UTF-8>
Run Code Online (Sandbox Code Playgroud)
为什么在Ruby中这仍然很难?
我有以下代码:
<table>
<tr>
<td><a href="#">some text</a></td>
<td>some more text</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我试图将这个表的整行变成一个超链接,但我不想使用JavaScript鼠标事件,因为我被限制使用JavaScript.我尝试过使用CSS但只找到了通过以下方式将个人变成超链接的方法:有a href style="display block;"没有人知道用css方法将整行变成超链接?
我有一些使用Nokogiri的代码,我试图得到inner_html没有得到评论.
html = Nokogiri::HTML(open(@sql_scripts_url[1])) #using first value of the array
html.css('td[class="ms-formbody"]').each do |node|
puts node.inner_html # prints comments
end
Run Code Online (Sandbox Code Playgroud) 我正在研究概念图应用程序,它有一组节点和链接.我已使用节点的中心作为参考将链接连接到节点.由于我有不同大小和形状的节点,因此建议不要通过指定形状的高度或宽度来绘制链接的箭头.我的方法是绘制一个链接,从一个节点开始,逐个像素,直到到达下一个节点(这里的节点颜色与背景颜色不同),然后通过访问像素值,我希望能够决定链接和节点的交点,实际上是绘制箭头的坐标.
如果我能得到一些帮助,那就太好了.
示例代码:http: //jsfiddle.net/9tUQP/4/
这里绿色方块是节点,从左方开始并进入右方的线是链接.我希望在链接和右方的交叉点绘制箭头.
我正在使用骨干,以及在页面加载时传递集合的一般方法
window.router = new Routers.ManageRouter({store: #{@store.to_json});
Run Code Online (Sandbox Code Playgroud)
这很好,效果很好,直到有人决定将文本" <script>alert("owned")</script>" 添加到其中一个商店字段.最后</script>明显关闭了javascript.怎么能绕过这个呢?
:javascript
$(function() {
window.router = new Dotz.Routers.ManageRouter({store: #{@store.to_json}});
Backbone.history.start();
});
Run Code Online (Sandbox Code Playgroud)
以上输出:
<script>
//<![CDATA[
$(function() {
window.router = new Dotz.Routers.ManageRouter({store: '{"_id":"4f3300e19c2ee41d9a00001c", "points_text":"<script>alert(\"hey\");</script>"'});
Backbone.history.start();
});
//]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我使用Nokogiri和Ruby来解释XML文件的内容.我想得到一个数组(或类似的)所有元素,<where>在我的例子中是直接的孩子.但是,我得到了各种文本节点(例如"\n\t\t\t"),这是我不想要的.有什么方法可以删除或忽略它们吗?
@body = "
<xml>
<request>
<where>
<username compare='e'>Admin</username>
<rank compare='gt'>5</rank>
</where>
</request>
</xml>" #in my code, the XML contains tab-indentation, rather than spaces. It is edited here for display purposes.
@noko = Nokogiri::XML(@body)
xml_request = @noko.xpath("//xml/request")
where = xml_request.xpath("where")
c = where.children
p c
Run Code Online (Sandbox Code Playgroud)
上面的Ruby脚本输出:
[#<Nokogiri::XML::Text:0x100344c "\n\t\t\t">, #<Nokogiri::XML::Element:0x1003350 name="username" attributes=[#<Nokogiri::XML::Attr:0x10032fc name="compare" value="e">] children=[#<Nokogiri::XML::Text:0x1007580 "Admin">]>, #<Nokogiri::XML::Text:0x100734c "\n\t\t\t">, #<Nokogiri::XML::Element:0x100722c name="rank" attributes=[#<Nokogiri::XML::Attr:0x10071d8 name="compare" value="gt">] children=[#<Nokogiri::XML::Text:0x1006cec "5">]>, #<Nokogiri::XML::Text:0x10068a8 "\n\t\t">]
我想以某种方式获得以下对象:
[#<Nokogiri::XML::Element:0x1003350 name="username" attributes=[#<Nokogiri::XML::Attr:0x10032fc name="compare" value="e">] children=[#<Nokogiri::XML::Text:0x1007580 "Admin">]>, #Nokogiri::XML::Element:0x100722c name="rank" …
我有一个Logger实例:
require 'logger'
logger = Logger.new( 'foo.log', 'weekly' )
Run Code Online (Sandbox Code Playgroud)
我想将运行时错误(stderr输出)重定向到日志中.我发现这个论坛帖子有以下建议:
new_fd = logger.get_logger_file_descriptor
$stderr.reopen new_fd
Run Code Online (Sandbox Code Playgroud)
但是,Logger没有实例方法get_logger_file_descriptor,也无法找到任何公开的方法来获取对日志设备或文件的访问权限.
如何让所有$ stderr输出进入日志?
今天我测试了当你使用getBoundingClientRect()已旋转的SVG元素时会发生什么.
结果是:
Chrome,Safari,Opera和IE似乎计算元素的本地(未转换)边界框,然后返回该边界框的客户端矩形.这可能导致客户端矩形比看起来合适.
另一方面,Firefox会剪切客户端矩形以适应元素本身.
根据规格,哪种行为是正确的?
对于它的价值,我更喜欢Firefox的行为,但(缺乏对规格的理解)认为 Firefox的偏差应该被认为是一个bug.
我在浏览器中呈现了SVG <image>.我想在http://jsfiddle.net/dt1510/pXA9P/1/上尝试动态更改其内容.在console.debug中,内容已更改,但在浏览器中它是相同的.
<svg>
<image x="20" y="20" width="300" height="80"
xlink:href="http://www.erh.noaa.gov/ilm/OpenLayers/img/marker.png" />
</svg>?
Run Code Online (Sandbox Code Playgroud)
var srcAirline = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAA9CAYAAAAeYmHpAAADD0lEQVR42u2aq3LrMBCG+0oH9hUOPK9QWFhYemBhYWhhYWBpYGBgqGGgYduv039mq65l+SY7sjXjcS62pW/1e6Vd6eZ9heVGH46nS/FHdal/Qv+5OxZ/PO+rDTpr5bf3x/fDp9wed+f1QO8Pl686689XDAMUDw2kLU+vVfnQSNqW47kuH1rStqV46HNV/4L+9/9UNrRXcnnxWaDpUa/s9lW50HdPPnQuZzYL9O670g36e5JSLLQ3XOWsfxZoZLxBZx6rFweNZy8OmsAiVjDI1BFXNmjFzikFLz5lj2eBBqC6dE/cTTVDmxy6aUxOLVPIfTJoGhpzWF3K2HKfBJoG1vX4eeqXt2qZ0EPl3FaIw/8+npYBPaacU+T+8HyeF5oG1Hl4R5H7YGgqTi2M00xOYqElBiQgSTViH7n3hqYiL8/lgZIGssNOahIBA2DUtjG+q9x7QcfkzO/0VAiakjmJTUYIRNoMQL0pY3ov6NBhCTTV2qhkyAwMA3Ctp7QUqfeClsU59500eKXPKgeQ3CcDXF0KOEdYOSu0N6avEjrXyuVs0N74XvxaVphQwDEWu5aFhJsmNUPn1IuEpidTMihTL9BnhaaHcWBMLOhRK3E8N7BMcrju6nNkbQt5gK5qSxWSz7nJZttHNgZ0alzLdepdzlfb04Aw5LRlM7SrSI4Kp8VxtT0NcNsEQ1kTQWOERe8YRIYaVpT6sdIESDCc+a7Yl4NrPWjF0ahFz+B31eGth/Ef7QiHNt2nugdDhxvewhSPTQR4eTAPWoFHakbFC1Q0i/Pq9IzWWd40jMZbA8SgsbqGJk/eHjSzNuqQn+C70lThM/lfPkHP4jolFzwn2QmaSqiQh3NoShmDDuWXAu31rL0XWeuVsW3Q/3KoTaNJJ2glAzlbmeWGjm3b4BqbtPScZDJ0KD0bE+eC1oJ+SiSm18/bppUMbTOYknjunlYb6EmgMLpdyqVdvN8YR/cNgg7lRY/bBuWAVg9a+fJZTtJmRWPxeWfvjbVzJfBi8wXa0NQOtbFpersFHBv0Bl049JrKB2+Sq02r4bQjAAAAAElFTkSuQmCC";
$('document').ready(change_image);
function change_image(){
var images = $("image");
var image = images[0];
$(image).removeAttr("xlink:href");
$(image).attr("src", srcAirline);
console.debug(image);
}
Run Code Online (Sandbox Code Playgroud)
我在某处读到了AJAX请求可能的情况,但页面需要离线显示.我也有约束,图像内容需要存储在变量中,不能保存为外部资源.
有没有简单的方法可以动态更改SVG图像的内容?