
XML(UTF-8)ファイルをPerlでOPENして読み込んで、
XML::SAXで、
characters()メソッド内で取得した文字列値を利用していますが、
XML内に&文字が存在していると、
そこで、
utf8 "\x81" does not map to Unicode at C:/Perl/site/lib/XML/SAX/PurePerl/Reader/
Stream.pm line 37.
utf8 "\x8C" does not map to Unicode at C:/Perl/site/lib/XML/SAX/PurePerl/Reader/
Stream.pm line 37.
Undeclared entity [Ln: 516, Col: 21]
エラーが出て強制終了されます。
どうすれば、このようなエラーを解消できますか?
No.2
- 回答日時:
最低限必要な情報を書いておくね。
Perl::SAX のバージョン。
XML の Valid 確認で使用したツール、とバージョン。
xml宣言からルート要素までの文字列。
エラーがでた要素の開始タグから終了タグまで全部。
実装した、ハンドラのリスト。
以上!
ちなみに Perl::SAX 2.1 の既知のバグには、それっぽいのはなっかたよ?
この回答への補足
「dscripty」様
お世話になっております。
さっそくですが、
「最低限必要な情報」を今日調べた結果、
調べがついた範囲で一通り下記します。
(1)Perl::SAX のバージョン。
・XML-SAX 0.99
・XML-SAX-Base 1.08
・XML-SAX-ExpatXS 1.32
・XML-SAX-Writer 0.53
(2)XML の Valid 確認で使用したツール、とバージョン。
・xmllintツール
・バージョンを、xmlling --versionで調べたところ、
”using libxml version 20708”
(3)xml宣言からルート要素までの文字列。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE dictionary SYSTEM "sampledtd.dtd">
<dictionary>
(4)エラーがでた要素の開始タグから終了タグまで全部。
【すみません。
質問時に記述したエラーメッセージ内容からは、
どこの要素でエラーが発生しているか?
判断がつきません。
もし何か調べる方法などございましたら、
ぜひ教えてください。よろしくお願いします】
(5)実装した、ハンドラのリスト。
use XML::SAX;
my $parserWk = XML::SAX::ParserFactory->parser( Handler => wkSAXHandler->new);
$parserWk->parse_uri($inFileNameWk);
start_element()
end_document()
start_element()
end_element()
characters()
以上になります。
よろしくお願いします。
「dscripty」様
お世話になっております。
エラー複数行のうち、一番下行の、
Undeclared entity [Ln: 516, Col: 21]
だけは、
&文字を、&文字列に正規表現で、
XMLファイル内を全て置き換えてから
SAXを実行したら解消していました。
ただし、
エラー複数行のうち、一番下行以外の複数エラー行は、
いまだにエラーのままです。
さしあたってご報告と御礼まで。
なお、エラー複数行のうち、一番下行以外の複数エラー行については、
引き続き、質問中ですので、
よろしくお願いします。
No.1
- 回答日時:
xml宣言から、ルート要素までの文字列と、
& でエラーがでた所の要素全部みないと、なんとも言いようがないかな?
既知のバグでもあるならべつだけど。
ちなみに、XML は Valid だよね。一応確認だけど。。。
「Undeclared entity」って描いてあるから、たぶんだけど、 HTML でつかえるからって、宣言してないエンティティー使っちゃってるとか?
この回答への補足
ご回答ありがとうございます。
「妥当なXML」です。
その後、試しに&をすべて削ってみたところ、
最後まで正常に動作はしています。
それでエラー複数行のうち、
一番下行だけは消えましたが、
それ以外の上行複数のエラーは、
残ったままです。
宣言してないエンティティーを使っていないか?
確認いたしましたが、とくに使っていませんでした。
ところで私が質問時に情報として記述し忘れていましたが、
XMLファイルの文字エンコードはUTF-8を利用しています。
以上になります。
アドバイスやヒントだけでも構いませんので、
何か思い当たることがございましたら、
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLを作成してもタグしか表示さ...
-
XMLデータを変換し印刷する方法
-
ChatGPT excel
-
XML、XSLTの適応エラー(IEから...
-
公文書のxmlファイルの開き方が...
-
MSFormsとは何ですか?
-
wmaファイルをmidiファイルに変...
-
順不同・任意のタグ
-
「マクロの記録」で作成したマ...
-
RSSフィードと無断転載について
-
binファイルの解凍
-
Excel関数で、セル内の文字列の...
-
Mac Excel VBAについて
-
XSLで、XMLの空タグを制御したい。
-
質問
-
XMLサイトマップの登録方法がわ...
-
タモリさんを信じられますか?
-
自分のHTMLサイトでRSSを読み込...
-
ゲーミングPCに入っているAlris...
-
【BAT(バッチ)ファイル】Web...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelにてweb関数を使い、webデ...
-
HTTPステータス 404 - There is...
-
XMLパースエラー
-
YST 向けサイトマップ ror.xml
-
構文に問題がないRSSフィードを...
-
IEが表示できないXML
-
DTDで、空要素をエラーしたい
-
Access VBAでXMLが読み込めない
-
IE7(だけ?)でXMLが表示できない。
-
index.rdf' の実行エラー
-
Access VBAで指定した要素を読...
-
RSS2.0の書き方
-
下水道公団の電子納品のチェッ...
-
127.0.0.1とlocalhost
-
RSS Feedの外部ファイル読み込み
-
エラーがでます。
-
アメブロ rss 読み込み
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
ルート要素ノードが2個ある場合?
おすすめ情報