获取标记名称的xpath语法是什么?

Nat*_*ong 12 ruby xml xpath nokogiri

我正在使用Nokogiri来解析一个大型XML文件.说我有以下结构:

<menagerie>
  <penguin>Pablo</penguin>
  <penguin>Mortimer</penguin>
  <bull>Ferdinand</bull>
  <aardvark>James Cornelius Madison Humphrey Zophar Handlebrush III</aardvark>
</menagerie>
Run Code Online (Sandbox Code Playgroud)

我可以算这样的非企鹅:

xml.xpath('//menagerie//*[not(penguin)]').length // 2
Run Code Online (Sandbox Code Playgroud)

但是如何获得这样的标签列表呢?(确切的格式并不重要;我只是想直观地扫描非企鹅.)

bull
aardvark
Run Code Online (Sandbox Code Playgroud)

更新

这给了我想要的清单 - 感谢OdedTMN以及delnan!

xml.xpath('//menageries/*[not(penguin)]').each do |node|
  puts node.name()
end
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 12

您可以使用name()local-name()XPath函数.

请参阅zvon上的示例.