是否有一种使用XMLReader在XML文档中获取名称空间的方法?现在,我正在使用SimpleXMLElement::getDocNamespaces()
来完成这项工作,但是由于我正在处理相当大的文档,因此存在一个缺点,因为据我所知,SimpleXML会立即就内存使用情况加载整个文档。
感谢您的帮助!
基于https://stackoverflow.com/a/12652385/1213708中的代码,该代码显示了如何使用XMLReader读取文档的属性,这仅检查该属性是否具有xmlns
前缀,如果存在,则使用以下命令将其添加到名称空间列表中前缀(即localName
值)/ URI(即属性值)...
要读取带有名称空间的XML,您不需要知道文档中使用的前缀。您需要了解并比较名称空间URI。所以不要比较XMLReader::$name
,但是XMLReader::$localName
和XMLReader::$namespaceURI
。