2017-03-04 84 views
0
$var1 = new SimpleXMLElement('CSVXML/xvar.xml', null, true); 
$var2 = new SimpleXMLElement('CSVXML/yvar.xml', null, true); 

比方說,我在第二XML獲得來自兩個diffrents XML文件中的變量,在第一個XML文件相同的變量

<Number>3698</Number> 
<InternalNumber>1</InternalNumber> 
<Name>Bob</Name> 
<Number>3500</Number> 
<InternalNumber>2</InternalNumber> 
<Name>Mike</Name> 
<Number>2775</Number> 
<InternalNumber>3</InternalNumber> 
<Name>Dan</Name> 

我得到以下

<player>3698</player> 
<group>A</group> 

我做到這一點

$varID = $var1->Number; 
$varnumber = $var2->player; 

if ($varID == $varnumber){ 
    echo '$var1->InternalNumber'; 
} 

這是可能的嗎?

我只想放出一個變量,就是A for XML! = XML2的B,有沒有可能做到這一點?

+0

「我這樣做」。那麼,當你這樣做時會發生什麼?它工作嗎?錯誤? –

+0

$ var1出錯了,InternalNumber總是給我1,即使我改變我的varID –

+0

你是否缺少for循環?這就是爲什麼你每次都得到3698的第一個結果,即內部數字1。 'print_r($ var1)'並檢查數組。 – vrn53593

回答

0

我發現這工作正常。測試link

<?php 
$str = <<<XML 
<items> 
<item> 
<Number>3698</Number> 
<InternalNumber>1</InternalNumber> 
<Name>Bob</Name> 
</item> 
<item> 
<Number>3500</Number> 
<InternalNumber>2</InternalNumber > 
<Name>Mike</Name> 
</item> 
<item> 
<Number>2775</Number> 
<InternalNumber>3</InternalNumber> 
<Name>Dan</Name> 
</item> 
</items> 
XML; 

$str2 = <<<XML 
<item> 
<player>3698</player> 
<group>A</group> 
</item> 
XML; 

$da = new SimpleXMLElement($str2); 
$varnumber = $da->player; 

$data = new SimpleXMLElement($str); 
foreach ($data->item as $item) 
{ 

    $this_number = $item->Number; 
    //echo $this_number."-".$item->InternalNumber."-".$varnumber."\n"; 
    if((int)$this_number == (int)$varnumber){ 
    $this_internalnumber = $item->InternalNumber; 
    echo $this_internalnumber."\n"; 
    } 
    else{ 
    echo "No Match found \n"; 
    } 
} 

希望這有助於。