말과 함께, 우리는 HTML이 ... 모두있는이상한 문제가 노코 기리
<div class="replace-me">
</div>
... 코드는 다음입니다
<video src='my_video.mov'></video>
로 교체해야합니다 :
을doc.css("div.replace-me").each do |div|
div.replace "<video src='my_video.mov'></video>"
end
간단하지만, 불행히도, 그것은 나를 위해 작동하지 않습니다. follwing을 오차 노코 기리 충돌 :
doc.css("div.replace-me").each do |div|
div.replace "<div>Test</div>"
end
이것은 노코 기리 버그, 아니면 내가 뭔가 잘못 수행
undefined method
children' for nil:NilClass /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/whiny_nil.rb:52:in
method_missing' /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib/nokogiri/html/document_fragment.rb:16:ininitialize' /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib/nokogiri/xml/node.rb:424:in
new' /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib/nokogiri/xml/node.rb:424:infragment' /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib/nokogiri/xml/node.rb:776:in
coerce' /Library/Ruby/Gems/1.8/gems/nokogiri-1.4.2/lib/nokogiri/xml/node.rb:331:in `replace'
원시 사업부로 교체가 작동합니까?
PS :이 목적을 위해 "add_child", "inner_html"및 기타 세터와 같은 문제
나는 당신의 이전 질문에서 내 의견을 인용합니다
확인. 이 게시물로 이동하자 :) 대체와 함께 작동하는 것 같습니다. 하지만 또 다른 문제는 - 수정 된 문서의 일부를 self.content에 다시 저장하려고하면 이전 부분을 대체 한 부분 만 얻게됩니다. 그러나 어딘가에 있었고 (self.content에서) 수정되지 않은 다른 요소들은 사라졌습니다. – AntonAL
매우 이상합니다. 이유를 이해하려고 노력 중입니다. 교체하기 전에 원본 HTML을 표시 할 수 있습니까? –