仅打印Nokogiri :: XML :: Node的属性,不带innerHTML

时间:2016-04-26 20:12:04

标签: ruby xml nokogiri

有没有人知道是否有一种本地方法可以打印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是否已经原生支持这样的东西。

1 个答案:

答案 0 :(得分:0)

您可以输出删除了内容的节点:

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>"