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

同じ変数

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

私は以下を得る第二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> 

最初のXMLファイルでは、のは、私は2つのdiffrents XMLファイルから変数を取得しましょうIこれを行う

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

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

これは可能ですか?

私は単に変数を出したい、それはXMLのためのものです! = B XML2から、とにかくそれを行うことは可能ですか?

+0

「私はこれを行う」だから、あなたがそれをするとどうなりますか?それは動作しますか?エラー? –

+0

$ var1が間違っています、InternalNumberは私のvarIDを変更しても常に1を返します –

+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"; 
    } 
} 

これが役に立ちます。

関連する問題