仅打印 Nokogiri::XML::Node 的属性,不带 innerHTML
Print attributes of Nokogiri::XML::Node only, without innerHTML
有谁知道是否有一种本机方法可以打印 Nokogiri::XML::Node
的属性而没有 innerHTML
或文本内容。
例如,给定以下 Nokogiri::XML::Node
:
<div id="customer" class="highlighted">
<h1>Customer Name</h1>
<p>Some customer description</p>
</div>
我只想打印:
<div id="customer" class="highlighted">
或
<div id="customer" class="highlighted"/>
或
<div id="customer" class="highlighted"></div>
我知道我可以使用 attributes
方法简单地遍历属性列表,但我想知道 Nokogiri 是否已经原生支持这样的东西。
您可以输出删除了内容的节点:
doc = Nokogiri::HTML.fragment(
'<div id="customer" class="highlighted">
<h1>Customer Name</h1>
<p>Some customer description</p>
</div>'
)
node = doc.at_css('#customer').clone
node.content = nil
p node.to_html
#=> "<div id=\"customer\" class=\"highlighted\"></div>"
有谁知道是否有一种本机方法可以打印 Nokogiri::XML::Node
的属性而没有 innerHTML
或文本内容。
例如,给定以下 Nokogiri::XML::Node
:
<div id="customer" class="highlighted">
<h1>Customer Name</h1>
<p>Some customer description</p>
</div>
我只想打印:
<div id="customer" class="highlighted">
或
<div id="customer" class="highlighted"/>
或
<div id="customer" class="highlighted"></div>
我知道我可以使用 attributes
方法简单地遍历属性列表,但我想知道 Nokogiri 是否已经原生支持这样的东西。
您可以输出删除了内容的节点:
doc = Nokogiri::HTML.fragment(
'<div id="customer" class="highlighted">
<h1>Customer Name</h1>
<p>Some customer description</p>
</div>'
)
node = doc.at_css('#customer').clone
node.content = nil
p node.to_html
#=> "<div id=\"customer\" class=\"highlighted\"></div>"