-1

我有 XML 文件。我需要将它从 XMl 转换为 MYSQL。. 现在我的问题是如何提取这两个数组

每个数组会有不同的

    <r> $value </r>

$value of data..for example for
first array,
pmIntervalTxEthMaxUtilization data : 34,2 and

对于第二个数组
pmIntervalRxPowerLevel 数据:-9,70 ,
pmIntervalTxPowerLevel 数据: 13,1

. 有人可以帮助指导如何编写 php 代码来将此 xml 文件提取到 MY SQL

    <mi>
        <mts>20130618020000</mts>
        <gp>900</gp>
        <mt>pmIntervalRxUndersizedFrames</mt>  [ this is 1st array]
            <mt>pmIntervalTxEthMaxUtilization</mt>
        <mv>
            <moid>port:1:3:23-24</moid>
            <sf>FALSE</sf>
            <r>0</r>    [the data for 1st array i want to insert in DB]
            <r>34</r>
        </mv>
                     <mv>
            <moid>port:1:3:23-24</moid>
            <sf>FALSE</sf>
            <r>0</r>    [the data for 1st array i want to insert in DB]
            <r>2</r>
        </mv>
    </mi>
    <mi>
        <mts>20130618020000</mts>            
        <gp>900</gp>
         <mt>pmIntervalRxSES</mt>            [this is 2nd array]
        <mt>pmIntervalRxPowerLevel</mt>
        <mt>pmIntervalTxPowerLevel</mt>
        <mv>
            <moid>client:1:3:23-24</moid>
            <sf>FALSE</sf>
            <r>0</r>   [the data for 2nd array i want to insert in DB]
            <r>-9</r>
            <r>13</r>
        </mv>
                     <mv>
            <moid>client:1:3:23-24</moid>
            <sf>FALSE</sf>
            <r>0</r>   [the data for 2nd array i want to insert in DB]
            <r>70</r>
            <r>1</r>
        </mv>
    </mi>
4

3 回答 3

0

你需要一个嵌套循环:

foreach($xml->mi as $mi)
{
    foreach($mi->mv as $subchild)
    {
        ...
        insert row
        ...
    }
}

<mi>这将遍历每个节点,并随后循环<mv>它包含的每个节点。

于 2013-06-26T07:58:53.330 回答
0

你的问题对我来说不是很清楚,你的意思是像一个嵌套循环:

foreach($xml->mi as $mi){
    // This deep we loop through each <mi> value
    foreach($mi->mv as $subchild){
    // Now we loop through each <mv> of the <mi> from the outer loop
    // code here
    }
}
于 2013-06-26T07:59:21.373 回答
0

这是当我们有两个具有不同数据内容的数组时的代码

$i = 0 ;
foreach($xml->md->mi as $mi)    
        { 
            foreach($mi->mv as $subchild)
            {   
                if ($i <2 )
                { 
                  //function code for 1st array
                    $i++;
                }   

                else
                {
                     //function code for 2nd array
                    $i++;
                }
            }
        }
于 2013-07-03T03:39:26.013 回答