0

これは私のreg.xmlファイルです:-

<childrens>
<child_4 entity_id="4" value="Activities" parent_id="2">
    <child_10066 entity_id="10066" value="Physical1" parent_id="4">
    <child_10067 entity_id="10067" value="Cricket" parent_id="10066">
        <child_10068 entity_id="10068" value="One Day" parent_id="10067"/>
    </child_10067>
    </child_10066>
</child_4>
<child_4331 entity_id="4331" value="Region" parent_id="2">
    <child_5069 entity_id="5069" value="Rajkot" parent_id="4331"/>
</child_4331>
</childrens>


これは私のproduct.xmlです:-

<products>
  <product_id value="1">
    <tab_id value="351">
      <tab_name value="test1"/>
      <region_timezone value="1"/>
      <registrationstatus value="2"/>
      <eventstatus value="2"/>
      <dist_activity value="5"/>
      <dist_activity value="10068"/>
      <dist_activity value="10070"/>
      <dist_region value="5069"/>
      <dist_region value="5069"/>
      <dist_region value="5069"/>
    </tab_id>
  </product_id>
  <product_id value="2">
    <tab_id value="352">
      <tab_name value="test2"/>
      <region_timezone value="1"/>
      <registrationstatus value="2"/>
      <eventstatus value="2"/>
      <dist_activity value="5"/>
      <dist_activity value="10069"/>
      <dist_activity value="10070"/>
      <dist_region value="4457"/>
      <dist_region value="7140"/>
      <dist_region value="5069"/>
   </tab_id>
  </product_id>
</products>


試した:-

<?php
 $abc= "One Day in Rajkot";
 list($first,$second) = explode(' in ',$abc);

 $text1[]=$first;
 $text2[]=$second;
 foreach($text1 as $event)
{
$event;
}
foreach($text2 as $region1)
{
$region1;
}
$r = file_get_contents('reg.xml');
$p = file_get_contents('product.xml');

$region = simplexml_load_string($r);
$product = simplexml_load_string($p);

list($entity) = $region->xpath("//*[@value='$event']/@entity_id");
$entity=(string)$entity;

list($entity1) = $region->xpath("//*[@value='$region1']/@entity_id");
$entity1=(string)$entity1;

//check the $entity in product.xml
list($prid) = $product->xpath("//*[@value='$entity']/ancestor::product_id/@value");
$prid=(string)$prid;
echo "Event:- $event, Region:- $region1, entity1:- $entity, entity2:- $entity1, Product_id:- $prid";
 ?>

1 つの文字列を配列に渡して、diff に分割しようとしています。配列とこの値がチェックインされreg.xml、reg.xml にこの値がある場合はチェックインされ、そこに取得され、entity_idこの ID が一致してからproduct.xml戻りますproduct_idproduct.xml

私のコードは正常に動作しますが、両方の xpath を 1 つに設定したい

    list($entity) = $region->xpath("//*[@value='$event']/@entity_id");
    $entity=(string)$entity;

    list($entity1) = $region->xpath("//*[@value='$region1']/@entity_id");
    $entity1=(string)$entity1;

この両方のパスを 1 つに設定したいのですが、次のようなことを試してください:-

list($entity,$entity1) = $region->xpath("//*[@value='$event']and[@value='$region1']/@entity_id");
    $entity=(string)$entity;


これで私を助けてください...

4

1 に答える 1

0

and次のように、2 つの述語を で結合することはできません。

[@value='$event']and[@value='$region1']

ただし、述語or で使用できます。

[@value='$event' or @value='$region1']

これでうまくいくはずです。詳細については、複数の述語を続けて使用できますがandそれらの間に演算子はありません。

 [@value='$event' or @value='$region1'][1]

例:最初のものだけを取る。

于 2013-04-01T10:46:18.353 に答える