2013-04-04 51 views
1

完美的输出,这是我的xml文件: -
的XPath没有得到从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文件检查
<dist_activity>
$两种价值与<individual_strdt>
两者都匹配,那么回报 $一个值有父元素属性值,如<product_id>1(一个是输出)
查询: - 现在问题出在$ abc字符串两个值都是差异。元素子值10068<product_id>1子元素和2013-02-14 20:39:00<product_id>2子元素。
现在在这种情况下,消息soud打印两个值不匹配
但它不能正常工作的显示器的product_id值1

回答

0

可能是你需要:

list($activity_id) = $product->xpath("//dist_activity[@value = '$actvitiy' ] | //individual_strdt[ @value = '$date']/ancestor::product_id/@value");