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で質問しましょう!
似たような質問が見つかりました
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- 英語 この3つの文をeven ifを使って書き換えるとどうなりますか? ① My best endeavo 1 2022/10/02 11:03
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- その他(IT・Webサービス) 見たことのない形式で日付が表示されているのでそれを解析してほしい 3 2023/01/23 16:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTTPステータス 404 - There is...
-
XHTMLの正しい書き方について質...
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
あせんうぶり言語
-
XSLで、XMLの空タグを制御したい。
-
VB6でXMLを作成しているのです...
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
コンテキストメニュークリック...
-
ノードの並び替え
-
Listからのnull要素を削除方法は?
-
ルート要素ノードが2個ある場合?
-
ノードとは
-
このエラー、何とかなりません...
-
html→xmlの変換
-
xmlファイルが上手にHTMLに変換...
-
Excel-VBAでXMLの複数ノードの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAでXMLが読み込めない
-
127.0.0.1とlocalhost
-
HTTPステータス 404 - There is...
-
RSS2.0の書き方
-
ウェブマスターツールのサイト...
-
rdfをIE7に認識させるには
-
エラーがでます。
-
YST 向けサイトマップ ror.xml
-
アメブロ rss 読み込み
-
DTDで、空要素をエラーしたい
-
構文に問題がないRSSフィードを...
-
MagpieRSSを使用して自分のHPに...
-
excelにてweb関数を使い、webデ...
-
perl言語 XMLの入れ子の取得方法
-
index.rdf' の実行エラー
-
東芝のDynabookなのですがアン...
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
おすすめ情報