仅打印 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>"