我遇到了一些严重的问题。我想要做的是“提取”XML中特定节点的所有内容,并将它们转换为PHP变量,以便以后使用它们。
这是我正在使用的一个小样本XML测试数据集。
<RECIPES>
<RECIPE>
<TI>Cinnamon Rolls</TI>
<IN>1/2 ea Sweet dough mixture</IN>
<IN>1/2 c Packed light brown sugar</IN>
<IN>1/2 c Pecans; chopped</IN>
<IN>1/2 c Dark seedless raisins</IN>
<IN>1 tsp Ground cinnamon</IN>
<IN>1/4 c Butter OR margarine; melted</IN>
<IN>Sugar Glaze (below opt)</IN>
<PR>Some Stuff.</PR>
</RECIPE>
<RECIPE>
<TI>SWEET BISCUITS</TI>
<IN>2 c Baking mix</IN>
<IN>2/3 c Milk</IN>
<IN>1/4 c Cinnamon Sugar</IN>
<IN>2 tb Butter</IN>
<PR>Some other stuff</PR>
</RECIPE>
<RECIPE>
(实际上约有900的这些) 我想要实现的是从每个节点提取数据,并将它们转换为变量;以下是我希望最终得到的结果。
$variable="Cinamon Rolls";
$variable2="Sweet Biscuits";
有没有办法实现这个目标?从我一直在研究的内容来看,我非常肯定它与SimpleXML有关。我已经设法单独输出内容,但是无法弄清楚如何存储它们。
问题已解决 谢谢大家的帮助,
$obj = simplexml_load_string($xml);
foreach($obj->RECIPE as $r) {
$variable = (string)$r->TI;
echo $variable; }
非常好,非常感谢。救了我的屁股。
答案 0 :(得分:1)
使用SimpleXML:
$obj = simplexml_load_string($xml);
foreach($obj->RECIPE as $r)
{
$variable = (string)$r->TI;
echo $variable;
}
输出
肉桂卷
Sweet Biscuits
<强> codepad Demo 强>
答案 1 :(得分:1)
在数组中?
$xml = simplexml_load_file($file_location);
$array = array();
foreach ($xml->RECIPE as $recipe){
$array[] = $recipe->TI
}