0

我在这方面遇到了一些严重的问题。我正在尝试做的是“提取”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; }

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

4

2 回答 2

1

使用SimpleXML

$obj = simplexml_load_string($xml);

foreach($obj->RECIPE as $r)
{
    $variable = (string)$r->TI;
    echo $variable;
} 

输出

肉桂卷
甜饼干

键盘演示

于 2012-12-07T10:45:42.290 回答
1

在数组中?

$xml = simplexml_load_file($file_location);
$array = array();

foreach ($xml->RECIPE as $recipe){
    $array[] = $recipe->TI
}
于 2012-12-07T10:47:49.010 回答