2017-07-28 16 views
1

別のタグ内にあるタグのコンテンツを指定IDタグとともに取得しようとしています。ソースは以下のXML応答です:phpを使用してxmlの親タグの子タグの内容を取得するには

XML応答は、ここに私のPHPコード

<PricePlans> 
    <PricePlan> 
     <Description>Check Email</Description> 
     <ID>1</ID> 
     <Price>2</Price> 
     <Time>900</Time> 
    </PricePlan> 
    <PricePlan> 
     <Description>High Speed</Description> 
     <ID>2</ID> 
     <Price>5</Price> 
     <Time>3600</Time> 
    </PricePlan> 
</PricePlans> 

であるここにある:

echo "Desc" ." ".$xml->PricePlan->Description ."</br>"; 

このコードは、私の最初のコンテンツを提供します"説明"タグ(電子メールをチェックする)しかし、特定の "ID"タグ(例えば、ID 2 - "高速")を持つpriceplanの説明が必要 xml応答はさらに "Pr icePlan "タグではなく、それぞれが" ID "タグに固有の値を持っています。

答えて

1

あなたは配列としてそれらを同じにアクセスすることができます:あなたはIDの値によって要素を見つける必要がある場合は、XPathを使用すること

echo($xml->PricePlan[0]->Description); 
//Check Email 
echo($xml->PricePlan[1]->Description); 
//High Speed 

foreach ($xml->PricePlan as $pricePlan) { 
    echo($pricePlan->Description); 
} 
//Check Email 
//High Speed 

$el = $xml->xpath('/PricePlans/PricePlan/ID[text()=2]/..'); 
1

は要素の説明とを取るためにあなたはxpathを使うことができる特定のIDです。

$id = 2; 

// xpath method always returns an array even when it matches only one element, 
// so if ID is unique you can always take the 0 element 
$description = $xml->xpath("/PricePlans/PricePlan/ID[text()='$id']/../Description")[0]; 

echo $description; // this echoes "High Speed" 
関連する問題