【问题标题】:Parse xml entries with specific content解析具有特定内容的 xml 条目
【发布时间】:2020-01-20 10:31:28
【问题描述】:

我只想读取包含某些内容的 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>";

} }

【问题讨论】:

  • 你不比较,你再分配!要检查一个值是否等于预期值,您需要使用== 而不是=
  • 不确定您要做什么,您只需选择一组随机的 VorherNachher 元素并(应该)检查它们是否匹配 $location['page'],如果它不是随机的怎么办设置?
  • 你们说的都对,我没想到。

标签: php xml xpath


【解决方案1】:

我有一个实际可用的新版本。

$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>";
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2013-08-30
    • 2016-05-05
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多