我有一个脚本,可以在现有的XHTML页面中插入url。这些url的跟踪代码带有和号,Nokogiri会自动将其替换为转义版本
&
. 我明白为什么,但是转义的URL意味着跟踪不起作用,因为跟踪代码已经更改。
我已经结账了
How to save unescaped & in nokogiri xml?
How can i put a string with an ampersand in an xml file with Nokogiri?
,和
Preventing Nokogiri from escaping characters?
,但我不太确定在我要做的事情的上下文中如何使用构建器或使用cdata。
这是我目前正在做的事情的一个简化版本
main_link
从外部获取):
doc = Nokogiri::XML(open("file.xhtml"))
link = doc.css("a")[0] # the actual file may contain multiple links, not just one
main_link = "http://www.url.com/"
tag = "?blah&blah=blahblah"
link["href"] = main_link + tag
new_content = doc.to_xml
File.open("new_file.xhtml", "w") { |f| f.write(new_content) }
#=> <a href="http://www.url.com/?blah&blah=blahblah">link</a>
我已经做到了,这很管用:
content = File.read("file.xhtml")
content.gsub!("&","&")
File.open("updated_file.xhtml", 'w') { |file| file.write(content) }
#=> <a href="http://www.url.com/?blah&blah=blahblah">link</a>
这对Nokogiri可行吗?我应该找别的地方来完成这个任务吗?