私の質問に答えられる人は誰でも、BIG FAT GOLD MEDAL OF AWESOMENESS に値します!
MySQL テーブルの内容を簡単な XML 形式に変換しようとしています。私はうまく動作するPHPを少し実行しています.XMLを見ることができます(良い時代です)。ただし、MySQL テーブルには、エンコードされていない HTML テーブル コードが入力されたフィールドがいくつかあります。取得した各フィールド値を CDATA タグ内にラップしています。xml タグが閉じていることを確認しましたが、エラーが発生していて理由がわからないため、何かが欠けているのではないかと考えています (Bad回)。私には問題ないように見えたので、これを Excel で開こうとしました (クライアントにはそのように表示されます)。「package」の開始タグが「long_description」の終了タグと一致していると表示されました。
http://www.shavesgreensafaris.com/display.phpは私が取り組んでいるページで、そこでデータを確認できます。
これは私が使用しているコードです...
$xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$root_element = "packages";
$xml .= "<$root_element>";
if(mysql_num_rows($result)>0)
{
while($result_array = mysql_fetch_assoc($result))
{
$xml .= "<package>";
//loop through each key,value pair in row
foreach($result_array as $key => $value)
{
//$key holds the table column name
$xml .= "<$key>";
//embed the SQL data in a CDATA element to avoid XML entity issues
$xml .= "<![CDATA[$value]]>";
//and close the element
$xml .= "</$key>";
}
$xml.="</package>";
}
}
//close the root element
$xml .= "</$root_element>";
//send the xml header to the browser
header ("Content-Type:text/xml");
//output the XML data
echo $xml;
私は一体何を間違っているのでしょうか?!
編集
OK、310 行目付近の long_description タグから「<」を 1 つ削除する何かがあるようです。それを ">long_description> として表示したい場合は、ビュー ソースで検索できます。何か非常に奇妙なことが起こって、タグが正しく形成されていません。私が使用しているコードは、すべての $keys に山括弧の開始と終了を確実に配置しているため、これがどのように発生するかは完全にはわかりませんでした。それは一度だけ起こりますが、他のすべてを詰め込んでいるようです.
なぜこれが起こっているのか誰にも分かりますか?
どんな助けでも大歓迎です、そして前もって感謝します!
宝石