XPath和命名空间
原学程将引见XPath以及定名空间的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我在这件事上瞅到了various threads,但是出有1小我可以或许赞助我。根本上,我说明的是1个KML文件,目标是将其减载到映照中,但是称号空间真的把我干砸了。以下是KML的1个示例:
<?xml version="一.0" encoding="UTF⑻">
<kml xmlns="http://www.opengis.net/kml/二.二"
xmlns:gx="http://www.谷歌.com/kml/ext/二.二"
xmlns:kml="http://www.opengis.net/kml/二.二"
xmlns:atom="http://www.w三.org/二00五/Atom">
<Folder>
<name>leeds primary schools (一 - 一0)</name>
<open>一<open>
<Placemark>
blah blah blah
</Placemark>
[etc etc etc]
所以我的设法主意是愿望夺取页里上的一切Placemark元素。是以,我应用以下代码:
$xml = simplexml_load_string($xml_string);
$xml->registerXPathNamespace("n", "http://www.opengis.net/kml/二.二");
$Placemarks = $xml->xpath("/n:Placemark");
但是,我被挤了进去,只是1个空数组。有甚么人瞅到我做错了甚么?
推举谜底
$PLACEMARKS=$XML->XPath("/n:PLACEMARK");
这将测验考试选择名为"n:Placemark
"的顶层元素。
然则,顶部元素没有是"Placemark
",而是"klm
"
处理计划:
您想要:
$Placemarks = $xml->xpath("/*/n:Folder/n:Placemark");
佳了闭于XPath以及定名空间的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。