XML::XPathを用いてやりたいことはほぼ実現できたのですが、
いざ実装しようとしたところで最も大きな問題にぶつかってしまいました。
日本語で検索できないのです。
$xml->find('/list/item[text()="りんご"]');
エラーにはなりませんが、合致するはずのノードが出てきません。
http://kentn.at.infoseek.co.jp/xml/perl_xpath.html
↑のページを見ると対処法はあるようなのですが、
XML/XPath.pm を修正しても以下のようなエラーが表示されます。
------------------
Query:
/list/ite...
^^^
Invalid query somewhere around here (I think)
------------------
XML::XPathで日本語を扱っている方がいましたら
対処法を教えていただけませんでしょうか。
また、XML::XPath::find()で正規表現を使うことは
できないのでしょうか。
No.1ベストアンサー
- 回答日時:
質問文で書かれている対処法は、要素名に関するモノです。
ウチでは、それは適用していませんが、
$xml->find('/list/item[text()="りんご"]');
自体はうまくマッチングできました。
おそらくPerlスクリプト自体のコードが違うのではないかと思います。
スクリプトの先頭に
use encoding 'UTF-8', STDOUT => 'shiftjis';
のように書いて
スクリプト自体をUTF-8で保存すると良いと思います。
そうでない場合には、おそらく"りんご"の部分をEncodeで変換する必要があると思います。
>Invalid query somewhere around here (I think)
のエラーは、やはり要素名に日本語を使っているとでるようです。
>XML::XPath::find()で正規表現を使うことはできないのでしょうか
XML::XPath::findについて詳しくは知らないですが、
規格的には(つまり機能拡張されていないのであれば)いわゆるPerlで扱うような正規表現は使用できません。
ありがとうございます!
use encoding 'UTF-8', STDOUT => 'shiftjis';
を指定することで上手くいきました!!
Perl 5.8から追加された機能なんですね。
わざわざJcodeを仲介する必要もなくなり、
コードもスッキリさせることができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ホームページのHTMLサイトマップを自動作成する方法を探しています。 1 2023/05/17 21:36
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- その他(プログラミング・Web制作) pythonでのカーソル移動がずれる 2 2023/07/30 08:51
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- 数学 この数学問題、スマートに解く方法を教えてください。 3 2023/01/26 23:17
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで時間の計算
-
掲示板はPerlだけで作れますか?
-
アルファベットに付いて質問し...
-
perlのflock関数でロックをかけ...
-
Perlのプログラムについて
-
INDIRECT 横に再度抽出したい
-
perlで文字の置換又は抽出に関...
-
このファイルを開く方法で困っ...
-
ファイルをディレクトリ分配の...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラー
-
XML::XPathで日本語検索するには
-
perlスクリプト s/^\\s+//; ...
-
PerlでIPアドレスを取得する方法
-
perl+shiftjisで5c文字化けの対...
-
実行時パラメータを使用するとE...
-
「CGIプログラムエラー」って何...
-
フォームから送られてきた文字...
-
正規表現でのエラー
-
何時間後を求める。
-
UTF8でperlスクリプトを書くと...
-
ActivePerl 1行入力で 'と"が...
-
メールフォームから大きめの添...
-
windowsXP上で動作する最新版の...
-
Perl 教えてください。
-
perlでactive directoryに登録
-
ローカルテストOKのPerl サー...
-
$com::VDの意味がわかりません
-
syntax OKなのに・・・
-
textareでの改行
おすすめ情報