/ / Imprimir atributos de Nokogiri :: XML :: Somente nó, sem innerHTML - ruby, xml, nokogiri

Imprimir atributos de Nokogiri :: XML :: Node apenas, sem innerHTML - ruby, xml, nokogiri

Alguém sabe se existe um método nativo para imprimir os atributos de um Nokogiri::XML::Node sem innerHTML ou conteúdo de texto.

Por exemplo, considerando o seguinte Nokogiri::XML::Node:

<div id="customer" class="highlighted">
<h1>Customer Name</h1>
<p>Some customer description</p>
</div>

Gostaria de imprimir apenas:

<div id="customer" class="highlighted">

ou

<div id="customer" class="highlighted"/>

ou

<div id="customer" class="highlighted"></div>

Eu sei que eu poderia simplesmente percorrer a lista de atributos usando o attributes método, mas eu queria saber se Nokogiri já suporta algo assim nativamente.

Respostas:

0 para resposta № 1

Você pode emitir o nó com seu conteúdo excluído:

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