【问题标题】:Filtering the page with xml用xml过滤页面
【发布时间】:2021-09-16 11:36:55
【问题描述】:

我想根据其中是否包含值来使用 xml 过滤网站。我有这样一个脚本,我不知道为什么,但它过滤一次很好,不是,有人可以给我一些建议吗?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<filter>
<min_szerokosc>111</min_szerokosc>
<min_wysokosc>111</min_wysokosc>
<min_glebokosc>111</min_glebokosc>
<max_szerokosc>1111</max_szerokosc>
<max_wysokosc>1111</max_wysokosc>
<max_glebokosc>1111</max_glebokosc>
<typ>power&free</typ>
<myjnia_automat>1</myjnia_automat>
<kabina_automat>1</kabina_automat>
<transport_gorny>1</transport_gorny>
<extra></extra>
</filter>

<?php

$cat=new Kategoria;

$kat=array(205,233,234,206,204,203,202);
//$kat=array(206);

foreach($_POST as $k => $v){
    if($v=="on"){
    $_POST[$k]=1;
    }
}

foreach($kat as $a => $b){

$result=$cat->getKategoria($b);

//print_r($_POST);

foreach($result as $res => $val){
    if(preg_match("/tab_[0-9]{1,2}_filter/i",$res)>0){
    //print_r($val);
    $xml = simplexml_load_string($val);

        if($xml){
        
        if($_POST['typ'] == $xml->typ){
        
        if($_POST['min_szerokosc'] <= $xml->min_szerokosc && 
        $_POST['min_wysokosc'] <= $xml->min_wysokosc   && 
        $_POST['min_glebokosc'] <= $xml->min_glebokosc && 
        $_POST['max_szerokosc'] <= $xml->max_szerokosc &&
        $_POST['max_wysokosc'] <= $xml->max_wysokosc   &&
        $_POST['max_glebokosc'] <= $xml->max_glebokosc &&
        $_POST['myjnia_automat'] == $xml->myjnia_automat ||
        $_POST['myjnia_reczna'] == $xml->myjnia_reczna ||
        $_POST['wanna'] == $xml->wanna &&
        $_POST['kabina_automat'] == $xml->kabina_automat ||
        $_POST['kabina_jedno_stanowiskowa'] == $xml->kabina_jedno_stanowiskowa ||
        $_POST['kabina_dwu_stanowiskowa'] == $xml->kabina_dwu_stanowiskowa &&
        $_POST['transport_gorny'] == $xml->transport_gorny ||
        $_POST['transport_dolny'] == $xml->transport_dolny){

        print "true:{$b}:{$res} \n";               
       }else{
       //print "false\n";
       //print("{$_POST['typ']} == $xml->typ");
                        }   
                    }
                }
    //print($res."\n");
        }
    }
}

?>

如何编写一个 if 语句以引用 xml 文件的每个值?

如何过滤这个简单的 xml?

【问题讨论】:

    标签: php xml if-statement


    【解决方案1】:

    我找到了解决问题的方法——这些是搜索值的权重——因此我可以从 xml 文件中精确过滤列表

    $resx=0;
     
    
        if($_POST['typ'] == $xml->typ){
        $resx=$resx+100;
        }else{
        $resx=$resx-100;
        }
    
        if($_POST['min_szerokosc'] <= $xml->max_szerokosc && $_POST['min_wysokosc'] <= $xml->max_wysokosc && $_POST['min_glebokosc'] <= $xml->max_glebokosc ){
        $resx=$resx+600;    
        }else{
        $resx=$resx-600;
        }
        
        if($_POST['max_szerokosc'] <= $xml->max_szerokosc && $_POST['max_wysokosc'] <= $xml->max_wysokosc && $_POST['max_glebokosc'] <= $xml->max_glebokosc ){
        $resx=$resx+5000;   
        }else{
        $resx=$resx-5000;
        }
        
        if($_POST['myjnia_automat'] == $xml->myjnia_automat || $_POST['myjnia_reczna'] == $xml->myjnia_reczna || $_POST['wanna'] == $xml->wanna){
        $resx=$resx+40000;
        }else{
        $resx=$resx-40000;
        }
        
        
        if($_POST['kabina_automat'] == $xml->kabina_automat || $_POST['kabina_jedno_stanowiskowa'] == $xml->kabina_jedno_stanowiskowa || $_POST['kabina_dwu_stanowiskowa'] == $xml->kabina_dwu_stanowiskowa){
        $resx=$resx+30000;  
        }else{
        $resx=$resx-30000;
        }
        
        
        if($_POST['transport_gorny'] == $xml->transport_gorny || $_POST['transport_dolny'] == $xml->transport_dolny){
        $resx=$resx+200;    
        }else{
        $resx=$resx-200;
        }
        
        //print $resx."+";
        
        if($resx >= 75900 || $_POST['czysc']==1){
    //some code;
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 2015-03-17
      • 1970-01-01
      相关资源
      最近更新 更多