我正在尝试获取另一个标记内的标记内容以及特定ID标记。源代码是以下xml响应:
Xml响应在这里
<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>
我的php代码在这里:
echo "Desc" ." ".$xml->PricePlan->Description ."</br>";
此代码为我提供了第一个“描述”标签(检查电子邮件)的内容,但我想要一个带有特定“ID”标签的价格计划的描述(例如ID 2 - “高速”) xml响应可能包含更多“PricePlan”标记,但每个标记在“ID”标记中都有唯一值。
答案 0 :(得分:1)
您可以像访问数组一样访问它们:
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
如果您需要在ID中按值找到元素,可以使用xpath:
$el = $xml->xpath('/PricePlans/PricePlan/ID[text()=2]/..');
答案 1 :(得分:1)
要获取具有特定ID的元素的描述,您可以使用xpath。
$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"