Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中管理XML(Glossword)_Php_Xml_Object - Fatal编程技术网

在PHP中管理XML(Glossword)

在PHP中管理XML(Glossword),php,xml,object,Php,Xml,Object,XML代码: <?xml version="1.0" encoding="UTF-8"?> <glossword version="1.8.11"> <line> <term t1="L" t2="O" t3="B" uri="lobby" id="1187"><![CDATA[lobby]]></term> <defn> <abbr lang="025"><![CDA

XML代码:

<?xml version="1.0" encoding="UTF-8"?> 
<glossword version="1.8.11">
<line>
<term t1="L" t2="O" t3="B" uri="lobby" id="1187"><![CDATA[lobby]]></term>
    <defn>
        <abbr lang="025"><![CDATA[]]></abbr><![CDATA[Grupo de personas influyentes, organizado para presionar en favor de determinados intereses. La actividad se denomina lobbying y quien la practica lobbista.<br />Un ejemplo de lobby turístico en España es Exceltur; el Skal Club sería un lobby turístico internacional.]]>
        <syn><![CDATA[grupo de presión]]></syn>
        <see link="Exceltur"><![CDATA[Exceltur]]></see>
        <see link="Skal International"><![CDATA[Skal International]]></see>
    </defn>
    <defn>
        <abbr lang="025"><![CDATA[]]></abbr><![CDATA[Vestíbulo de un hotel y de otros establecimientos como cines, teatros, restaurantes, etc., especialmente si es grande.]]>
    <syn><![CDATA[hall, vestíbulo]]></syn>
        <see link="Tururu"><![CDATA[Tururu]]></see>
        <see link="Lalala"><![CDATA[Lalala]]></see>
    </defn>
</line>
</glossword>    
问题是我只能检索第一个标记之间的数据。例如,我只能得到“普雷西翁咖啡”,但我无法以任何方式取回“维斯蒂布洛大厅”。其余标记也会发生同样的情况


提前感谢您的帮助

您需要迭代
defn
节点。试着这样做:

foreach ($xml->line as $line){ // Only if you can have several 'lines'
    foreach($line->defn as $defn){
        foreach($defn->see as $seealso){

            $seealso = (array)$seealso;

            $model->addSeealso($idtermino,$seealso[0]);
     }
    }
 }

您需要迭代
defn
节点。试着这样做:

foreach ($xml->line as $line){ // Only if you can have several 'lines'
    foreach($line->defn as $defn){
        foreach($defn->see as $seealso){

            $seealso = (array)$seealso;

            $model->addSeealso($idtermino,$seealso[0]);
     }
    }
 }

谢谢亚瑟,这很有帮助。当我看到它的时候,我想我为什么没想到呢?!哈哈,再次感谢!谢谢亚瑟,这很有帮助。当我看到它的时候,我想我为什么没想到呢?!哈哈,再次感谢!