繁体   English   中英

从XML文件加载到PHP以生成内容

[英]loading from an XML file into PHP to generate content

所以我想做的是将XML文件中的数据加载到php中,并使用这些变量生成内容。 对于每个项目,我都希望获得一组新的变量值并将其打印到页面上。 如果有4个interfaceItem,则应打印4个具有4个唯一标题的displayWrappers。 这对我不起作用。 是否有更好或更有效的方法? 我现在遇到的错误是:

注意:试图获取非对象的属性

警告:为foreach()提供了无效的参数

<?php

$xmldata = simplexml_load_file('elements.xml');
foreach($xmldata->portfolio->interface->interfaceItem as $item) :?>
<?php
$title = ($item->title);
$desc = ($item->description);
$whatOne = ($item->whatOne);    
$whatTwo = ($item->whatTwo);
$location = ($item->location);      

?>
<div class="displayWrapper">
    <div class="display">
        <p> <?=$title ?> </p>
    </div>
</div>



<?php endforeach;?>




<portfolio>
<interface>
    <interfaceItem>
        <title>modi tempora</title>
        <decription>lorum ipsum</decription>
        <whatOne> dolor sit amet</whatOne>
        <whatTwo>sed quia non</whatTwo>         
        <location>i/blah.jpg</location>
    </interfaceItem>
    <interfaceItem>
        <title>magnam aliquam</title>
        <decription>omnis voluptas assumenda est, omnis dolor repellendus.</decription>
        <whatOne>expedita distinctio</whatOne>
        <whatTwo>possimus, omnis voluptas</whatTwo>         
        <location>i/blah2.jpg</location>
    </interfaceItem>
</interface>
</portfolio>

我将在这里的黑暗中进行突击检查,并将其减少为两个可能的问题中的一个或两个。

场景1

您的XML文件如下所示

<portfolio>
    <interface>
        <interfaceItem>

使用SimleXML,第一个元素是根节点。 您需要更改代码才能使用

foreach ($xmldata->interface->interfaceItem as $item)

方案2

SimpleXML元素迭代区分大小写。 如果您的XML看起来像这样

<root>
    <Portfolio>
        <Interface>
            <InterfaceItem>

您需要将代码更改为

foreach ($xmldata->Portfolio->Interface->InterfaceItem as $item)

更新资料

给定您问题中的XML样本,如果那是elements.xml的内容,它将简单地是

foreach ($xmldata->interfaceItem as $item)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM