2
我的問題是與PHP的simpleXML,我有一個函數,我的數組轉換爲XML,但有時忘記放置每個「<」,因此XML將無效。有人看過類似的東西嗎?PHP simpleXML輸出sintax無效
private function array_to_xml($baseInfo, &$xmlBaseInfo) {
foreach($baseInfo as $key => $value) {
if(is_array($value)) {
if(!is_numeric($key)){
$subnode = $xmlBaseInfo->addChild("$key");
$this->array_to_xml($value, $subnode);
}
else{
$subnode = $xmlBaseInfo;
$this->array_to_xml($value, $subnode);
}
}
else {
$value = utf8_encode($value);
$value = str_replace("&", "&", $value);
$xmlBaseInfo->addChild("$key", $value);
}
}
}
這就是我把它稱爲類:
$xmlBaseInfo = new SimpleXMLElement('<'.'?xml version="1.0" encoding="iso-8859-2" ?'.'>'."\n" ."<data></data>");
$this->array_to_xml($this->data,$xmlBaseInfo);
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xmlBaseInfo->asXML());
echo $dom->saveXML();
有時候,我是怎麼說的輸出這樣的XML:
<?xml version="1.0" encoding="iso-8859-2"?>
<data>
<jatek_id>1</jatek_id>
<cim>The Big Bang Theory</cim>
<alcim>alcím</alcim>
<leiras>Lorem Ipsum....</leiras>
<fotonev></fotonev>
<status>0</status>
<megjelenik>Nov 11 2011 11:11:11:000AM</megjelenik>
<winnertext/>
<szabaly/>
<lap_id>9</lap_id>
<questions>
<question>
<jatekkerdes_id>1</jatekkerdes_id>
<jatek_id>1</jatek_id>
<kerdes>Tyúk vagy tojás</kerdes>
<sorrend>10</sorrend>
<megoldas>1</megoldas>
<fotonev/>
<answers>
<answer>
<jatekvalasz_id>1</jatekvalasz_id>
<kerdes_id>1</kerdes_id>
<valasz>Tyúk</valasz>
<sorrend>10</sorrend>
<fotonev/>
</answer>
<answer>
<jatekvalasz_id>2</jatekvalasz_id>
<kerdes_id>1</kerdes_id>
<valasz>Tojás</valasz>
<sorrend>20</sorrend>
<fotonev/>
</answer>
</answers>
</question>
<question>
<jatekkerdes_id>2</jatekkerdes_id>
<jatek_id>1</jatek_id>
<kerdes>Almafa vagy borecet?</kerdes>
<sorrend>20</sorrend>
<megoldas>3</megoldas>
<fotonev/>
<answers>
<answer>
<jatekvalasz_id>3</jatekvalasz_id>
<kerdes_id>2</kerdes_id>
valasz>Almafa</valasz> //Here is the problem! missing <
<sorrend>30</sorrend>
<fotonev/>
</answer>
<answer>
<jatekvalasz_id>4</jatekvalasz_id>
<kerdes_id>2</kerdes_id>
<valasz>Borecet</valasz>
<sorrend>40</sorrend>
<fotonev/>
</answer>
</answers>
</question>
</questions>
</data>
THX的幫助
它發生在這個陣列上:
Array
(
[jatek_id] => 1
[cim] => The Big Bang Theory
[alcim] => alcím
[leiras] => Lorem Ipsum...
[fotonev] =>
[status] => 0
[megjelenik] => Nov 11 2011 11:11:11:000AM
[winnertext] =>
[szabaly] =>
[lap_id] => 9
[questions] => Array
(
[0] => Array
(
[question] => Array
(
[jatekkerdes_id] => 1
[jatek_id] => 1
[kerdes] => Tyúk vagy tojás
[sorrend] => 10
[megoldas] => 1
[fotonev] =>
[answers] => Array
(
[0] => Array
(
[answer] => Array
(
[jatekvalasz_id] => 1
[kerdes_id] => 1
[valasz] => Tyúk
[sorrend] => 10
[fotonev] =>
)
)
[1] => Array
(
[answer] => Array
(
[jatekvalasz_id] => 2
[kerdes_id] => 1
[valasz] => Tojás
[sorrend] => 20
[fotonev] =>
)
)
)
)
)
[1] => Array
(
[question] => Array
(
[jatekkerdes_id] => 2
[jatek_id] => 1
[kerdes] => Almafa vagy borecet?
[sorrend] => 20
[megoldas] => 3
[fotonev] =>
[answers] => Array
(
[0] => Array
(
[answer] => Array
(
[jatekvalasz_id] => 3
[kerdes_id] => 2
[valasz] => Almafa
[sorrend] => 30
[fotonev] =>
)
)
[1] => Array
(
[answer] => Array
(
[jatekvalasz_id] => 4
[kerdes_id] => 2
[valasz] => Borecet
[sorrend] => 40
[fotonev] =>
)
)
)
)
)
)
)
不完全肯定這一點,但'&'在'功能array_to_xml($ baseInfo,&$ xmlBaseInfo)'可能是一個因素。 –
Thx對於這個想法,但沒有任何變化:S這個錯誤隨機出現很奇怪。所以有時它沒有任何錯誤。 – Okonai
不客氣。我不知道它可能是什麼。這是我唯一站出來的東西。我會對此表示讚賞,看看是否有其他人拿起你的問題並希望找到解決方案。 –