PHP5のSimpleXMLについての質問です。


実現したいことは、
「日本語が含まれたXMLをSimpleXMLオブジェクトとして読み込んで、
要素の追加や削除を行った後にそのXML自体を"実体参照を含まない形で"、"文字列として"表示させること」
です。

現在asXML()メソッドを利用していますが、どうしても日本語が実体参照された形になってしまいます。
しかも実体参照(文字実体参照)と文字参照(数値文字参照)が混合した形になっています。
これをなんとか回避したいのですが、何かよい方法がありましたら教えてください。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/05/14 17:00:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:TNIOP No.1

回答回数2344ベストアンサー獲得回数58

ポイント27pt

http://www.jagat.or.jp/sgml/xml/SXML/SXML_2.htm

こちらのような感じではいかがでしょうか。

id:k1LoW

解答ありがとうございます。

しかし、今回の問題はMACのXMLエディタではなく、PHPのSimpleXML関数の話です。また、問題を解決していないようです。

2007/05/08 09:18:13
id:felix33 No.2

回答回数343ベストアンサー獲得回数2

id:k1LoW

回答ありがとうございます。

残念ながら実体参照については言及していないようです。

2007/05/10 00:40:00
id:studioes No.3

回答回数523ベストアンサー獲得回数61

ポイント26pt

 えーと、当方のPHP5.1.6では再現しないのですが、もしかしてUTF-8以外の文字コードを使ったりしているのでしょうか?

 SimpleXML自体は、UTF-8やLatinコードに対応していて、EUC-JP等は、動いたり動かなかったりという状態です。

id:k1LoW

回答ありがとうございます。また、検証ありがとうございます。

もしかしたら自分は問題の切り分けができていないのかもしれません。

環境はPHP5.1.6で内部エンコードもUTF-8です。

やっていることは、

「フォーム(UTF-8)からPOSTで送られてくるデータを元にSimpleXML関数でXMLを作成してそれをasXMLでテキスト化してechoで表示」

です。

2007/05/10 18:46:36
  • id:k1LoW
    質問は終了しましたが、問題は解決していません。
    問題が解決しましたらまた書き込みます。

    どうもありがとうございました。
  • id:leva
    こちらを参照の上、XML宣言にエンコーディングを指定してください。
    http://goungoun.dip.jp/app/fswiki/wiki.cgi/devnotebook?page=PHP5%A1%A2SimpleXML%2D%3EasXML%28%29%A4%C7%A5%DE%A5%EB%A5%C1%A5%D0%A5%A4%A5%C8%CA%B8%BB%FA%A4%AC%BF%F4%C3%CD%CA%B8%BB%FA%BB%B2%BE%C8%A4%CB%A4%CA%A4%C3%A4%C6%A4%B7%A4%DE%A4%A6%A1%A9
  • id:k1LoW
    >levaさん
    どうもありがとうございます。まさに自分が求めていた回答です。
    本当にありがとうございます!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません