这是我的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";
?>
我尝试在数组中传递一个字符串并将其拆分为diffi . array,此值在reg.xml
中检查,如果reg.xml具有此值,则到达那里entity_id
此id与product.xml
匹配,然后从product.xml
返回product_id
我的代码工作得很好,但我想在一个
list($entity) = $region->xpath("//*[@value='$event']/@entity_id");
$entity=(string)$entity;
list($entity1) = $region->xpath("//*[@value='$region1']/@entity_id");
$entity1=(string)$entity1;
我想把这两个路径设置为一个,我尝试这样做:-
list($entity,$entity1) = $region->xpath("//*[@value='$event']and[@value='$region1']/@entity_id");
$entity=(string)$entity;
请帮我解决这个问题……
您不能像这样将两个谓词与and
组合:
[@value='$event']and[@value='$region1']
然而,你可以在谓词内使用or
:
[@value='$event' or @value='$region1']
这应该完成这项工作。进一步说明,您可以在
之后使用多个谓词,但是,它们之间没有and
这样的操作符:
[@value='$event' or @value='$region1'][1]
示例:只取第一个