在PHP中管理XML(Glossword)
XML代码:在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 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]);
}
}
}
谢谢亚瑟,这很有帮助。当我看到它的时候,我想我为什么没想到呢?!哈哈,再次感谢!谢谢亚瑟,这很有帮助。当我看到它的时候,我想我为什么没想到呢?!哈哈,再次感谢!