如何在.xml文件中检索图像

时间:2014-02-03 10:02:07

标签: php xml

当我上传图像时,它将文件名存储在db中并在(gallary)文件夹中移动图像。现在我想通过php代码在xml文件(demo.xml)中检索存储的图像。所以我的问题是如何在XML文件中添加php代码或者是否有其他方法可以执行此操作。这是我的demo.xml文件代码。

<Piecemaker>
     <Image Source="images/las.png" Title="slide1">
Text>&lt;h1&gt;Images&lt;/h1&gt;&lt;p&gt;description area.&lt;/p&gt;</Text>
</Image>
    <Image Source="images/la.png" Title="Slide 2">
      <Text>&lt;h1&gt;Images&lt;/h1&gt;&lt;p&gt;description area.&lt;/p&gt;</Text>

    </Image>
 <Transitions>
    <Transition Pieces="9" Time="1.2" Transition="easeInOutBack" Delay="0.1" DepthOffset="300" CubeDistance="30"></Transition>
    <Transition Pieces="15" Time="3" Transition="easeInOutElastic" Delay="0.03" DepthOffset="200" CubeDistance="10"></Transition>    
  </Transitions>
</Piecemaker>

1 个答案:

答案 0 :(得分:0)

将它们加载到DOM中,为它创建一个Xpath对象并使用表达式来提取数据:

$dom = new DOMDocument();
$dom->loadXml($xml);
$xpath = new DOMXpath($dom);

$images = array();
foreach ($xpath->evaluate('/Piecemaker/Image') as $node) {
  $images[] = [
    'src' => $node->getAttribute('Source'),
    'title' => $node->getAttribute('Title'),
    'description' => $xpath->evaluate('string(./Text)', $node)
  ];
}

var_dump($images);

示例:https://eval.in/97492

DomXpath :: evaluate()可以返回可以使用foreach遍历的节点列表,或者使用string()count()等xpath函数标量值。