2
我需要獲得XML::LibXML::Node範圍內的所有名稱空間。該模塊具有getNamespaces()
方法,但文檔明確地說,它使用XML獲取所有名稱空間:: LibXML
不會返回在範圍內的所有命名空間,但只有那些明確聲明該節點。
那麼如何獲得特定節點範圍內的所有命名空間?
我需要獲得XML::LibXML::Node範圍內的所有名稱空間。該模塊具有getNamespaces()
方法,但文檔明確地說,它使用XML獲取所有名稱空間:: LibXML
不會返回在範圍內的所有命名空間,但只有那些明確聲明該節點。
那麼如何獲得特定節點範圍內的所有命名空間?
我沒有發現任何的功能要做到這一點,但肯定是可以使用XPath:
@nodes = $node->findnodes('namespace::*');
返回所有的命名空間中$node
可見範圍。然後,您可以從返回的XML :: LibXML :: Node :: Namespace對象中獲取前綴和URI:
@prefix_uris = map {[ $_->getLocalName, $_->getData]} @nodes;