1

这是我的 xml 文件:-

<products>
  <product_id value="1">
    <tab_id value="351">
    <dist_activity value="10068"/>
    <dist_activity value="10070"/>
    <individual_strdt value="2013-01-14 20:35:00"/>
    </tab_id>
  </product_id>
  <product_id value="2">
    <tab_id value="352">
    <dist_activity value="10069"/>
    <dist_activity value="10070"/>
    <individual_strdt value="2013-02-14 20:39:00"/>
    </tab_id>
  </product_id>
</products>


这是我的代码:-

<?php
$abc="10068 in 2013-02-14 20:39:00";
list($one,$two)=explode(' in ',$abc);
$text1[]=$one;
$text2[]=$two;

foreach($text1 as $activity)
{
$actvitiy;
}
foreach($text2 as $date)
{
$date;
}


$p = file_get_contents('product.xml');

$product = simplexml_load_string($p);

list($activity_id) = $product->xpath("//dist_activity['$actvitiy'] | //individual_strdt['$date']/ancestor::product_id/@value");
$activity_id = (string) $activity_id;
?>
<script language="javascript">
alert('<?= $activity_id ?>')
</script>
<?php
if (strlen(trim($activity_id))==0)
{
echo $activity.'&'.$date.' Region Not Match';
exit;
} //check the $entity in product.xml
echo "id:- $activity_id";
?>


在这里,我有一个字符串,$abc
我尝试将它们分解in
并存储到两个差异var
中返回如下内容:
$one = 10068
$two = 2013-02-14 20:39:00
尝试检查product.xml文件
$one 值和<dist_activity>
$two 值,<individual_strdt>
两者都匹配,然后返回父元素属性值,如<product_id>1(一个是输出)
查询:- 现在问题是在 $abc 字符串中,两个值都是差异的。element child value10068<product_id> 1子元素,2013-02-14 20:39:00<product_id> 2子元素。
现在在这种情况下,消息会被打印出来,两个值都不匹配
,但它不能显示 product_id 值1

4

1 回答 1

0

可能你需要:

list($activity_id) = $product->xpath("//dist_activity[@value = '$actvitiy' ] | //individual_strdt[ @value = '$date']/ancestor::product_id/@value");
于 2013-04-04T11:57:31.797 回答