我正在尝试获取元素内每个元素<img>
和<caption>
元素的值<item>
并存储在数组中。
这是我的XML文件:
<?xml version="1.0" encoding="UTF-8" ?>
<gallery>
<item>
<img>/data/images/galeries/mayens/middle/lemontgond.jpg</img>
<caption><![CDATA[<font color="black" size="12"> Le Mont-Gond</font>]]></caption>
</item>
<item>
<img>/data/images/galeries/mayens/middle/AlpagedeLodze1.jpg</img>
<caption><![CDATA[<font color="black" size="12">Alpage de Lodze</font>]]></caption>
</item>
</gallery>
我以字符串的形式获取XML文件的内容并创建我的Query对象,然后尝试获取值,但是它始终为null或不太正确,例如,我得到了Le Mont-Gond]]>
不正确的信息,因为它没有正确删除CDATA标记。
$content = file_get_contents(__THE_XML_FILE_ABOVE__);
$query = new Query($content);
foreach($query->queryXpath('item') as $item) {
$subXml = $item->ownerDocument->saveXML($item);
$subItem = new Query($subXml);
$resultTitle = $subItem->queryXpath('//caption')->current()->nodeValue;
$resultUrl = $subItem->queryXpath('//img')->current()->nodeValue;
var_dump($resultTitle, $resultUrl); die;
}
返回,不确定为什么它似乎适用于字幕,但不适用于img?
string ' Le Mont-Gond]]>' (length=16)
string '' (length=0)
可以使用:
$query = new Query();
$query->setDocumentXML($content);
foreach($query->queryXpath('item') as $item) {
$subXml = $item->ownerDocument->saveXML($item);
$subItem = new Query();
$subItem->setDocumentXML($subXml);
$resultTitle = $subItem->queryXpath('caption')->current()->nodeValue;
$resultUrl = $subItem->queryXpath('img')->current()->nodeValue;
var_dump($resultTitle, $resultUrl); die;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句