使用XML::LibXML获取作用域中的所有命名空间



我需要获取XML::LibXML::Node范围内的所有名称空间。该模块有一个getNamespaces()方法,但文档明确表示它是

不会返回范围内的所有名称空间,而只返回为该节点显式声明的名称空间。

那么,如何获取特定节点范围内的所有名称空间呢?

我没有找到任何函数来做这件事,但使用XPath:肯定是可能的

@nodes = $node->findnodes('namespace::*');

这将返回对$node可见的范围中的所有命名空间。然后,您可以从返回的XML::LibXML::Node::Namespace对象中获取前缀和URI:

@prefix_uris = map {[ $_->getLocalName, $_->getData]} @nodes;

相关内容

  • 没有找到相关文章

最新更新