8

Nokogiri NodeSet からエスケープされていない内部 HTML を取得したいと考えています。誰もこれを行う方法を知っていますか?

4

4 に答える 4

4

うまくいかないことはありますか?

nodeset.inner_html
于 2009-11-24T15:37:57.553 に答える
2

ヘチマの宝石は、ここで私を大いに助けてくれました。

于 2012-05-25T22:26:45.283 に答える
1

ノードを CDATA でラップします。

def wrap_in_cdata(node)
    # Using Nokogiri::XML::Node#content instead of #inner_html (which
    # escapes HTML entities) so nested nodes will not work
    node.inner_html = node.document.create_cdata(node.content)
    node
end

Nokogiri::XML::Node#inner_htmlCDATA セクション以外の HTML エンティティをエスケープします。

fragment = Nokogiri::HTML.fragment "<div>Here is an unescaped string: <span>Turn left > right > straight & reach your destination.</span></div>"
puts fragment.inner_html
# <div>Here is an unescaped string: <span>Turn left &gt; right &gt; straight &amp; reach your destination.</span></div>


fragment.xpath(".//span").each {|node| node.inner_html = node.document.create_cdata(node.content) }
fragment.inner_html
# <div>Here is an unescaped string: <span>Turn left > right > straight & reach your destination.</span>\n</div>
于 2014-02-27T10:12:09.630 に答える
0

古いバージョンの libxml2 では、Nokogiri が一部のエスケープ文字を返す可能性があります。私は最近この問題を抱えていました。

于 2010-05-04T13:59:28.547 に答える