2013-04-04 43 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");