使用XML节点中包含的数据创建PHP变量

时间:2012-12-07 10:43:23

标签: php xml

我遇到了一些严重的问题。我想要做的是“提取”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; }

非常好,非常感谢。救了我的屁股。

2 个答案:

答案 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
}