使用XML::LibXML获取范围内的所有名称空间
我需要获取一个应用程序范围内的所有名称空间。该模块有一个使用XML::LibXML获取范围内的所有名称空间,xml,perl,xml-libxml,Xml,Perl,Xml Libxml,我需要获取一个应用程序范围内的所有名称空间。该模块有一个getNamespaces()方法,但文档明确指出 不会返回作用域中的所有名称空间,只返回为该节点显式声明的名称空间 那么,如何获取特定节点范围内的所有名称空间呢?我没有找到任何函数来实现这一点,但使用XPath肯定是可行的: @nodes = $node->findnodes('namespace::*'); 返回$node可见范围内的所有名称空间。然后,可以从返回的XML::LibXML::Node::Namespace对象中获
getNamespaces()
方法,但文档明确指出
不会返回作用域中的所有名称空间,只返回为该节点显式声明的名称空间
那么,如何获取特定节点范围内的所有名称空间呢?我没有找到任何函数来实现这一点,但使用XPath肯定是可行的:
@nodes = $node->findnodes('namespace::*');
返回$node
可见范围内的所有名称空间。然后,可以从返回的XML::LibXML::Node::Namespace对象中获取前缀和URI:
@prefix_uris = map {[ $_->getLocalName, $_->getData]} @nodes;