1. ホーム
  2. Web プログラミング
  3. XML/RSS
  4. XMLの基礎知識

XML不正文字(エスケープ文字)

2022-01-17 15:01:46
いつものように
クライアントから送られてきたxmlファイルには
xmlファイルを読み込んで、カレンダーにマウスオーバーすると1日の授業スケジュールを表示するという、Ajaxのデータ読み込みに似たjsスクリプトです(ただし、データは完全に静的に更新されています)。
全体のスケジュール更新を行うのは2者なので(クライアントがページを作るのとホームページを更新するのを分けている)
渡されたxmlファイルには、いつも問題があって
私もよくやるのでわかるのですが、制作者はまだhtmlコードのレベルでは比較的初心者なのです。
だから、毎回更新前に渡されたファイルを必ず修正するんだ。
案の定、まだ問題があります。
いつものように、ファイル内容の各タグに不備がないかを確認したところ
1つだけエラーがないことを確認し、「大丈夫だろう」と感じた。
しかし、ページにはまだxmlデータの読み込みに失敗したと表示されたままです。
タグを最初から最後まで一つ一つ確認しました(ファイルはかなり長いです、情けないです、うひょ~~~~~)。
構文は間違っていないようです~~~、タグは完成しています~~~、と。
突然、コンテンツのあちこちに "&" を見つけてしまった、ちくしょー。
詳しく理解するために、w3schoolで調べました。
エスケープ文字
不正な XML 文字は、実体参照に置き換える必要があります。
XMLには、5つの事前定義された実体参照があります。
より小さい。
> > より大きい値
& &および記号
' ' アポストロフィ
" "クォーテーションマーク
注:厳密には、XMLで不正な文字は "<" と "&" だけです。アポストロフィ、引用符、大なり記号は合法ですが、エンティティ参照に置き換えるのが良い習慣です。
というわけで、真相解明はここまで。
自分の運の悪さとXMLの知識のなさを責めるしかありません