使用ZF2 Query从XML文档获取值

dan2k3k4

我正在尝试获取元素内每个元素<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)
dan2k3k4

可以使用:

$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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ZF2生成XML文件

来自分类Dev

ZF2获取全局会话容器

来自分类Dev

ZF2在工厂获取参数

来自分类Dev

ZF2在工厂获取参数

来自分类Dev

zf2如何使用AuthenticationService获取用户详细信息

来自分类Dev

在Coldfusion中使用“-”从xml文档中获取值

来自分类Dev

在zf2中获取所有模块名称

来自分类Dev

zf2获取控制器中的JSON值

来自分类Dev

ZF2从路线获取控制器和动作

来自分类Dev

zf2从表单获取过滤后的值

来自分类Dev

在zf2中获取所有模块名称

来自分类Dev

如何在zf2中获取最后插入的ID?

来自分类Dev

我如何从zf2中的url获取参数?

来自分类Dev

ZF2从路线获取控制器和动作

来自分类Dev

从zf2中的表单对象获取输入验证器

来自分类Dev

ZF2 - bind array to single database query parameter

来自分类Dev

zf2和doctrine2 ObjectRadio从相关实体获取可变条件

来自分类Dev

如何在zf2中显示从文档到index.phtml的数据?

来自分类Dev

如何使用wordpress运行zf2?

来自分类Dev

ZF2不推荐使用:ServiceManagerAwareInterface

来自分类Dev

使用REGEXP的ZF2查询

来自分类Dev

ZF2无法使用翻译

来自分类Dev

始终获取在zf2 select元素的干草堆中找不到输入

来自分类Dev

ZF2:如何获取与当前URL引荐来源网址对应的路由?

来自分类Dev

如何在ZF2的控制器的构造函数中获取标头?

来自分类Dev

ZF2 Redis适配器:获取TTL或为密钥设置新的到期时间?

来自分类Dev

从通过ZF2中的rest请求发送的多部分数据中获取文件内容

来自分类Dev

ZF2 Form \ Element \ MultiCheckbox:如何在新行中获取每个项目?

来自分类Dev

如何在ZF2中获取SQL查询中的出现次数