• ベストアンサー

XML(DTD)の<!ENTITYを読み込むには?

Perlで、XMLのDTD内の、 たとえば以下のような   ↓ <!ENTITY rt4 "ルーチン4"> (キー”rt4”と、値”ルーチン4”)を、 読み込むには、どうすればよいのでしょうか? 単純にXML(DTD)をテキストファイルとしてオープンして、 正規表現などで読み込むのではなく、 この<!ENTITY~ タグを利用して、 簡単に読み込める方法があるのでは? と思い、ネット上を探しておりましたが、 具体的な方法が見つけられなかった為、 ご質問させていただきました。 よろしくお願いします。

  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.1

>と思い、ネット上を探しておりましたが、 >具体的な方法が見つけられなかった為、 XML::libXML 定番だと思うがこれじゃだめなの? XML::libXML::Dtdってのもある. #Dtdを読ませることはないのでXML::libXML;Dtdは使ったことはない

hohoemikun
質問者

お礼

その後、試してうまくいきました。 ご回答ありがとうございました。

hohoemikun
質問者

補足

ご回答ありがとうございます。 さっそく、CPANでXML::libXMLと、XML::libXML;Dtdを、 それぞれ用意して試してみます。 ところで、もしよろしければ、 「#Dtdを読ませることはないのでXML::libXML;Dtdは使ったことはない」 についてお聞きしたいのですが、 DTD内の「<!ENTITY~」などの定数を、XML::libXML;Dtdを使わずに、 どのような方法でXML内で利用するのが良いのでしょうか。 (XML::libXMLのみを使うのでしょうか) すみません。 私がXMLをPerlで使うのが初めての初心者のため、 的を得た質問が出来ていないかもしれませんが もしよろしかったらアドバイスいただけましたら助かります。 よろしくお願いします。

関連するQ&A

  • DTDについて

    DTDでXMLのチェックをしようと思っているのですが、 あるタグ配下には、XHTMLのタグをすべてOKにしようとおもっています。その場合のDTDの書き方は、どうすればよいのでしょうか? やはり、すべてのタグを記述しなければ、いけないのでしょうか?(量が多いので、「チェックしない」とかって方法があれば、それでもよいのですが) よろしくお願いします。

    • ベストアンサー
    • XML
  • XML要素をテキストファイルに出力するようにするには?

    お世話になります。 Perlを使って以下のようなXMLドキュメントを読み込み、テキストファイルの出力を行いたいと思って、正規表現等を使ってプログラムを作ってはいましたが、なかなかうまく行かず、行き詰まってしまいました。 ~~読み出すファイルのタグ~~ <info num = 1> <name>namae1</name> <nunber>10</number> </info> <info num =2> <name>namae2</name> <nunber>25</number> </info> ・ ・ ~~終了~~ 上記で読み出したい要素は、それぞれの<info>タグ内の<name>と、<nunber>のタグ内の要素です。 そして、その要素をテキストファイルに出力する。というようなプログラムを考えております。 事情により、出来れば、Perlのモジュールを使わずに正規表現などにて取り出したいと思っていますが、楽な方法が有ればその方法もおしえていただければと思います。 使用目的は、ローカル上でXMLドキュメント内のデータを抽出することです。 何か良い方法が有れば、ご教授いただけると助かります。 よろしくお願いします。

  • バッチでXMLにタグを追記する方法について

    バッチでXMLファイルに任意のタグと値を追記することは可能でしょうか? もし可能であれば、具体的な方法を教えていただきたいです。

  • PHP ”XML_unserialize”でXMLを配列に変換したのですが・・・

    XMLファイルを配列としてとってこれる XML_unserializeというライブラリを使用して XMLファイルに含まれるデータをとってPHPで利用することが できたのですが、ここで一つ大きな問題が発生しました。 XML_unserializeをつかうと <XMLTAG>  取り出したいデータ </XMLTAG>      ↓ array(  [XMLTAG] = 取り出したいデータ ) と、たしかに取り出したいデータを配列に変換することができます。 しかし、取り出したいデータの中にタグが含まれていた場合 例えば <XMLTAG>  <div>取り出したいデータ</div> </XMLTAG> とかになっていると <div>もXMLと判断されてしまって 必要なデータがうまくとってこれないのです。 正規表現でエスケープさせるにしても数が膨大ですし、 XMLタグ名に実際にHTMLで使われている タグ名が使われているとも限りません。 どうすれば、 ”XMLの中に入っているHTML等のタグを含むデータ”をうまくとってくることが できるのでしょうか?

    • ベストアンサー
    • PHP
  • PerlでXMLを解析して出力する。

    PerlでXMLで必要なデータだけ抽出しようと考えています。 下のサンプルXMLを次のテキストに変換したいのですが 具体的な記述方法が知りたく質問しました。 さくら  子供1  子供2 きく  子供3 正規表現でなくXMLパーサ?というもので解決したいです。「宿題ではありません、あしからず(^^;」 <?xml version="1.0"> <E1> <E2> <list>example1></list> <list>example2></list> ... </E2> <E3> <class name="さくら"> <heya> <hito> <seimei>子供1</seimei> </hito> <hito> <seimei>子供2</seimei> </hito> </heya> </class> <class name="きく"> <heya> <hito> <seimei>子供3</seimei> </hito> </heya> </class> </E3> </E2> </E1>

    • ベストアンサー
    • Perl
  • 本を探しています(XMLをPerlで文字取得編集)

    お世話になります。 XMLファイル(DTDファイルも別途有ります)を、 出来ればPerlで、 XSLT(XSLの変換機能)等を利用して、 文字取得・編集したいです。 (XMLから文字を取得して、Perl等で文字編集後、  別のテキストファイルとして出力したいです) そのような内容が掲載されている本を Amazonのレビュー等を参考にしながら探しているのですが、 なかなか見つけることが出来ません。 できればPerlがよいのですが、なければ、 Perl以外の別のプログラム言語でも構いませんので、 お勧めの本(もしくはWebサイト等)などございましたら、 ぜひ紹介してください。 よろしくお願いいたします。

    • ベストアンサー
    • XML
  • XMLファイル内のデータ(値)を変更するには?

    XMLファイルに書かれているデータを変更するプログラムを書きたいのですが、何か良い方法はありますか? 言語は問いません、初歩的な質問かもしれませんがお願いします。 以下valueの部分(数値)を、 value='12'からvalue='13' のように変更したいのですが、便利な関数などあるでしょうか? <set name='その1' value='12' /> <set name='その2' value='3' /> <set name='その3' value='5' /> <set name='その4' value='10' /> XMLファイルをオープンして読み込んでから、正規表現などでvalueの値を取得、変更し、ファイルを上書きするのではスマートで無い気がしまして。

    • 締切済み
    • XML
  • XML::XPathで日本語検索するには

    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()で正規表現を使うことは できないのでしょうか。

    • ベストアンサー
    • Perl
  • perlでxmlファイルを検索して表示する方法

    perlであるxmlファイルを検索して xmlファイルを表示する方法についてお伺いします c:\ -A --X 1.xml 2.jpg 3.jpg --Y --Z このような構造でxからzまでのディレクトリをさがして 「.xml」のファイルの中にある文字列「uuuuu」があれば そのファイルのリストを出力して、クリックすると表示 させたいのですが、perlでできますでしょうか このときファイルのリストを出力するときに 実際のファイル名を.xmlにある特定のタグについて囲まれた 文字列を表示したいと思っています。 (<name>abcde</name>) また「uuuuu」は任意で入力を要求するようにしたいと 思っています。 私ができることはテキストファイルの中身を表示するくらいです open (FILE, 'c:\A\X\1.xml') or die "$!"; while (my $line = <FILE>){ chomp $line; print "$line\n"; } close (FILE); ほかにこのような参考書、urlなどありましたら教えて いただけると幸いです よろしくお願いします

  • ActionScript3でのXML操作

    ActionScriptの初心者です。お世話になります。 既存のXMLにデータを追加していきたいのですがやり方がわかりません。データは以下のようなフォーマットです。 <books> <book> <title>...</title> <author priority="1">...</author> <!--■authorのpriorityを参照してこの辺に追加したりします--> <author priority="2">...</autor> <book> <books> Web上、adobeのリファレンスでいろいろ探したのですが、ほとんどXMLのデータを参照する方法しか紹介されていません。XMLのデータにタグを追加したり、削除したりする方法、またはWeb上のサンプル等何でもよいので、おしえていただけますでしょうか? または、XMLクラスを使わず行単位で正規表現で文字処理する方法でもかまいません。よろしくお願いします。m(_*_)m バージョン:AcrionScript3.0 (XMLDocumentなどのクラスを使わず、W3Cで定義されているXPathのようなアクセス方法、.とか、@とかでアクセスする方法です。)

    • ベストアンサー
    • Flash

専門家に質問してみよう