脚本宝典收集整理的这篇文章主要介绍了php – XPath与没有名称空间的属性不匹配作为前缀,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
不幸的是,它们没有预定义的结构.
它们总是使用两个名称空间,“http://www.w3.org/1999/02/22-rdf-syntax-ns#”和“http://www.mozilla.org/2004/em-rdf#”.
$xML = simplexml_load_string($installRDF); $namespaces = $xml->getNameSpaces(true); $xml->registerXPathNamespace('rdf',NS_RDF); $main = $xml->xpath('/rdf:RDF/rdf:Description[@rdf:about="urn:mozilla:install-manifest"]');
但是关于about属性的rdf前缀似乎存在问题,因为它只返回结果,如果在RDF文件中也定义了前缀.
因此,它的工作原理:
<RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#" xmlns:RDF="http://www.w3.org/1999/02/22-rdf-Syntax-ns#"> <RDF:Description RDF:about="urn:mozilla:install-manifest"> <em:id>extension@mozilla.org</em:id> </RDF:Description> </RDF:RDF>
但对此不是:
<RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#" xmlns="http://www.w3.org/1999/02/22-rdf-Syntax-ns#"> <Description about="urn:mozilla:install-manifest"> <em:id>extension@mozilla.org</em:id> </Description> </RDF>
这看起来像PHP中的一个错误,因为如果我从XPath中删除该属性,我总是得到Description元素.但我还没有意识到在XPath中使用命名空间,所以我在这里问.
以上是脚本宝典为你收集整理的php – XPath与没有名称空间的属性不匹配作为前缀全部内容,希望文章能够帮你解决php – XPath与没有名称空间的属性不匹配作为前缀所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。