12
일부 태그가 다른 태그로 바뀌면 변환해야하는 HTML이 있습니다.Nokogiri로 전체 HTML 노드 찾기 및 바꾸기
나는이 태그에 대해 모른다. 왜냐하면 그들은 db에서 올거야. 따라서 Nokogiri의 set_attribute
또는 name
방법은 저에게 적합하지 않습니다.
나는이 의사 코드에 같은 방식으로 그것을 수행해야합니다
def preprocess_content
doc = Nokogiri::HTML(self.content)
doc.css("div.to-replace").each do |div|
# "get_html_text" will obtain HTML from db. It can be anything, even another tags, tag groups etc.
div.replace self.get_html_text
end
self.content = doc.css("body").first.inner_html
end
나는 Nokogiri::XML::Node::replace
방법을 발견했다. 제 생각에 그것은 올바른 방향입니다.
이 메서드는 일부 node_or_tags
매개 변수를 필요로합니다.
텍스트에서 새 노드를 만들고 현재 노드로 바꾸려면 어떤 방법을 사용해야합니까? 그와 마찬가지로
. 나는 "링크가 해제 된 노드에 문맥 상 파싱을하지 않는다"라는 오류를 생성합니다. "inner_html"속성이 설정된 라인의 경우이 방법으로 불평합니다. – AntonAL
방금 테스트를했으며 내 환경에서 작동합니다. 'new_node.inner_html ='을'new_node.content ='로 바꾸고 오류를 다시 확인하십시오. 그것해야합니다. –
고마워, 알아 냈어. 문제는 DOM에 연결되지 않은 요소를 수정하는 것입니다. 먼저 교체하고 수정해야합니다. 좋은 점은 있지만 좀 더 혼란스러운 문제에 봉착했습니다. 대체품으로 마크 업을 삽입 할 수 없습니다. 예를 들어, "new_node.inner_html ="