首页 > 解决方案 > 解析具有特定内容的 xml 条目

问题描述

我只想读取包含某些内容的 xml 文件,但我的代码似乎在交换数据,而不仅仅是显示我想要的条目。在这种情况下,所有具有“Zahnreinigung”内容的条目。

<Bilder>
<VorherNachher>
    <Image>img/vorhernachher/vorhernachher-zahnreinigung.jpg</Image>
    <Behandlung>Zahnreinigung</Behandlung>
    <Arzt>Dr. Name</Arzt>
</VorherNachher>

$url = "vorhernachher.xml";
$xmldata = @simplexml_load_file($url) or
die ("error ".$url."\n");

$random = array_rand($xmldata->xpath('VorherNachher'), 12);
   foreach($random as $key) {
      $VorherNachher = $xmldata->VorherNachher[$key];

    if ($VorherNachher->Behandlung = ($location['page'])) {

      echo "<div><div class='slide01'>";

      echo "
          <div class='bild-slide'>
          <img src='$VorherNachher->Image' alt='Vorher/Nachher $VorherNachher->Behandlung' class='OF-cover'>
          </div>
          <a href='$ArztLink' class='arzt'><img src='$ArztImg' alt='$VorherNachher->Arzt'>$VorherNachher->Arzt</a>";

      echo "</div></div>";

} }

标签: phpxmlxpath

解决方案


我有一个实际有效的新版本。

$sxe =  simplexml_load_file("vorhernachher.xml");
foreach($sxe->xpath('//VorherNachher') as $item) {

    $row = simplexml_load_string($item->asXML());
    $v = $row->xpath('/VorherNachher/Behandlung[. ="'.$vorhernacher.'"]');

    if($v[0]){
        print "<div><div class='slide01'> ";
        print "<div class='bild-slide'><img src='$item->Image' alt='Vorher/Nachher $item->Behandlung' class='OF-cover'></div>
              <a href='$ArztLink' class='arzt'><img src='$ArztImg' alt='$item->Arzt'> $item->Arzt</a>";
        print "</div></div>";
    }
}

推荐阅读