• 締切済み

CGIでXML解析したいです

この質問はCGIで投稿したのですがこちらの方が適切ですかね? XML形式のクエリーを送信させてそれをPERLで解析したいのですがうまくいきません。 <LOGIN USERNAME="hanako" PASSWORD="875" /> 上記形式のXML(将来的には情報を付加)なんですがFLASHから生成させています。 環境変数など調べてみたのですがメソッドはPOST,CONTENT_LENGTHもしっかり入っています。 どこに送られてきたデータがあるのでしょうか、またXMLを解析するモジュールでもあるのでしょうか(XML::DOM,PARSER?使用方法が乏しいです)、よろしくお願いします。

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

みんなの回答

  • ICHI-an
  • ベストアンサー率0% (0/0)
回答No.1

もう問題は解決していますか? 一応参考URL載せておきます。

参考URL:
http://member.nifty.ne.jp/hippo2000/perltips/index.htm
tarkey
質問者

お礼

返事が遅れまして申し訳ございませんでしたm(_ _)m さっそく参考URLにアクセスしてみます。 回答ありがとうございました o(^o^)o

関連するQ&A

  • XMLパーサの種類について混乱してます

    XSLTをいじる必要に駆られて、現在Java1.4+JAXP1.1を利用しています。 いままで、javax.xml.transformをimportしてメソッドを実行するだけで、「変換系に何を使っているのか」については全く気にしていなかったのですが、その実体は何なのでしょうか? (XTとかXalanとか、単体の変換系がありますよね・・・?) また、DOMパーサ、SAXパーサもJAXPで使えますが、各々のパーサや変換系を集めてパッケージにしたものがJAXPなんでしょうか。 さらに、勉強中にXMLパーサという単語が出てきて混乱しています。XMLパーサは、DOM・SAX・XSLT等とは違うのでしょうか? (XMLパーサと名乗っているXercesは何に使うのでしょうか・・・) DTDとの関連も含めて解説して頂けたら嬉しいです。

    • ベストアンサー
    • Java
  • perl xml解析について

    perl初心者です。 以下のxmlデータの「http://www.google.co.jp」をxml解析して値を取得したいのですが、 どのようなプログラムを記述すればよろしいのでしょうか? <?xml version="1.0" encoding="x-sjis-cp932" ?> <Res_result> <result result="1" /> <result redirect="http://www.google.co.jp" /> </Res_result> いろいろ試してみましたが、どうもうまくいきません。 ちなみにサーバーにインストールされているxml関連のモジュールが XML::Simple XML::Parser となります。 ご教授の方、宜しくお願い致します。

    • ベストアンサー
    • Perl
  • DOMでパースしているXML全体の出力方法

    お世話になります。 JavaでDOMを使ってXML操作をしたいと考えております。 おおよそ、以下のソースでparseできるところまで確認できました。 DOMParser parser = new DOMParser(); parser.parse("XMLファイルパス"); Document doc = parser.getDocument(); 開発中なので、DOM操作した結果のXMLを随時コンソールやログに 出力させたいのですが、たとえばdoc.toString()してもnullとなり、 正常に出力されません。 以下のようにElementを取得すると正常にアクセスできていることは 確認しています。 Element rootEl = doc.getDocumentElement(); System.out.println(rootEl.getNodeName()); なお、DOMライブラリにはxercesを用いております。 Dom4jのAPIも見てみましたが、それらしいメソッドを見つけることが できていません。 簡単にXMLを出力できることが理想です。 一般的な方法、よくやる手法など、みなさんよりご教示頂きたいです。

    • ベストアンサー
    • Java
  • xml_parse_into_structでなぜか0が返ります

    http://iac-npo.de-blog.jp/yamazaki/atom.xml 上記のアドレスは、あるプロ野球選手のブログのRSSです(atom形式)。 これをxml_parse_into_structを使い、配列構造体に格納しようと考えています。 しかし、なぜか返り値は0。配列は当然カラです。 XMLについては文字コードはUTF8ですし、構造もきちんとしているように見えます。 何が原因なのでしょうか? ソースは以下の通りです。 $content=file_get_contents('http://iac-npo.de-blog.jp/yamazaki/atom.xml'); $xml_parser=xml_parser_create(); xml_parse_into_struct($xml_parser,$content,$vals); xml_parser_free($xml_parser);

    • ベストアンサー
    • PHP
  • XML::LibXMLのfindnodes()で、ワイルドカードを使いたい

    XML::LibXMLでXPathを使いたいのですが、 ワイルドカードの指定がうまくいきません。 要素名に*を当てはめたいのですが、、、、 例えば以下の通りです。 下記XMLのid="1-1"とid="1-2"を抜きだしたいのです。 できればXPathにて指定したいのですが、、、 教えてください。 my $dom = $parser->parse_file($xml_file_str) or die; $x = "//Test/TestText[@id="1-*"]/text()"; $c = $dom->findnodes($x); 解析対象XML <XML> <Test> <TestText id="1-1">テスト1</TestText> <TestText id="1-2">テスト2</TestText> <TestText id="2-1">テスト3</TestText> </Test> </XML>

    • ベストアンサー
    • Perl
  • HTTPリクエストでのXMLデータ送信

    画面からあがって来たデータを、XML形式にして HTTPリクエストを投げる実装をJAVAで行う必要があります。 「HttpURLConnection」を利用し、Body部分に埋め込む方法を 考えているのですが、他にいい方法はないでしょうか? #こんな方法ではできないでしょうか? ※携帯向け機能なので、javaScriptが利用できません。 例)  ID=0001&PassWord=1234   ↓↓↓↓  <XMLData> <Login ID="0001" PassWord="1234">  </XMLData> ※ヘッダー部分としては以下の様にしたいのです。  POST /cgi-bin/login HTTP/1.1  Accept: */*  Content-Type: application/x-www-form-urlencoded  :  :  :  Connection: Keep-Alive  Cache-Control: no-cache  <XMLData> <Login ID="0001" PassWord="1234">  </XMLData> 以上、ご教授お願いします。

  • XMLを表示させるには?

    お世話になります。 アマゾンの売り上げレポートを見ようとしてるんですが、 TSV形式だとイマイチ項目が揃っておらず、 XML形式で見ようとするとなんだかタグのようなのが 並んでおり、良くわかりません。 ここページをみると http://www.microsoft.com/japan/sbs/techinfo/administration/2000/XMLReporting.asp MSXML 3.0 が現在インストールされていない場合は、下記のサイトより適切な言語のパーサー(構文解析プログラム)をダウンロードしてください。 MSDN Online Downloads Web サイト (http://msdn.microsoft.com/downloads/default.asp) で表示されるメニューの中から [Web Development] をクリックし、さらに [XML] をクリックしてください。 英語版(US 版)の場合は、[MSXML Parser 3.0 Release] をクリックしてください。 日本語版やローカライズ版に関しては、[MSXML 3.0 Parser Localized Versions] をクリックしてください と書いてあるんですが、そこのページに行っても 「Web Development」が見当たりませんし、 「MSXML 3.0 Parser Localized Versions」もありません。 一体どこに行けばいいのでしょうか? また、その他にXML形式を普通に見られる方法があれば教えて下さい。 宜しくお願い致しますm(__)m

  • XMLでこんなの作りたい。

    [ 環境 ] OS:WindowsXP Pro PHP:5.3.1 Apache:2.2.14 DBServer:SQLServer2005 EXPRESS [ 質問 ] DB側データ row,level,level_name 0,level1,root 1,level2,admin という様なデータをXMLにて以下の様な表示にしたい。 <?xml version="1.0" encoding="UTF-8" ?> <result> <row row="0"> <level>level1</level> <level_name>root</level_name> </row> <row row="1"> <level>level2</level> <level_name>admin</level_name> </row> </result> この場合、以下のソースをどの様に変更したら良いか アドバイスを頂けたらと思います。 <?php // SQLServerとの接続 require("connect-sqlserver.php"); // XML 生成 $dom = new DOMDocument("1.0"); $node = $dom->createElement("result"); $parnode = $dom->appendChild($node); // MSSQLSERVR への接続セット $db = mssql_connect($server, $userid, $passwd); mssql_select_db($dbName, $db); // [SYSW_LEVEL]テーブルからフィールド情報取得 $query = "SELECT * FROM SYSW_LEVEL"; $res = mssql_query($query, $db); header("Content-type: text/xml"); // XMLへフィールドの値を渡す while ($row = mssql_fetch_assoc($res)) { $node = $dom->createElement("row"); $newnode = $parnode->appendChild($node); $newnode->setAttribute("level", $row['LVL_LEVEL']); $newnode->setAttribute("level_name", mb_convert_encoding($row['LVL_LEVELNAME'],'UTF-8','CP932')); } $dom->encoding="UTF-8"; echo $dom->saveXML(); ?> 以上、よろしくお願い致します。

    • 締切済み
    • PHP
  • C++: HTMLパーサを探しています。

    C++のHTMLパーサライブラリを御存じの方がおられましたら、教えて頂けませんでしょうか。 XMLパーサはちらほら見つかるのですが、HTMLの解析ができるものを探しております。 PerlモジュールのHTML::TreeBuilderのようなtree構造の解析までできるものが理想です。 宜しくお願いいたします。

  • Xercesを使ったjavaでのXML解析

    DOMを使ってXML文書を解析するJavaのソースコードで、DOMパーサは、クラス org.apache.xerces.parsers.DOMParserで参照している下記のプログラムで、 [Fatal Error] :17:109: The entity name must immediately follow the '&' in the entity reference. org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 109; The entity name must immediately follow the '&' in the entity reference. のエラーが出てしまって、解決策が分かりかねています。Javaのネットワークプログラミングに詳しい方、御教示願えればと思います。 package nikkei; import java.io.ByteArrayInputStream; import org.apache.xerces.parsers.DOMParser; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class TwitterSearch { public static void main(String[] args) throws Exception { TwitterSearch search = new TwitterSearch(); search.search("日経ソフトウエア"); } public void search(String keyword) throws Exception { SearchAPIClient client = new SearchAPIClient(); String xml = client.execute(keyword); parse(xml); } private void parse(String xml) throws Exception { DOMParser parser = new DOMParser(); try { parser.parse(new InputSource(new ByteArrayInputStream(xml.getBytes()))); Document doc = parser.getDocument(); NodeList entries = doc.getElementsByTagName("entry"); for (int i = 0; i < entries.getLength(); i++) { String name = null; String tweet = null; Element entry = (Element) entries.item(i); NodeList titleList = entry.getElementsByTagName("title"); if (titleList.getLength() == 1) { tweet = titleList.item(0).getTextContent(); } NodeList authorList = entry.getElementsByTagName("author"); if (authorList.getLength() == 1) { Element author = (Element) authorList.item(0); NodeList nameList = author.getElementsByTagName("name"); if (nameList.getLength() == 1) { name = nameList.item(0).getTextContent(); } } System.out.println(name + "さんのツイート"); System.out.println("\t" + tweet); } } catch (Exception e) { e.printStackTrace(); } } } package nikkei; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; public class SearchAPIClient { public String execute(String keyword) throws Exception { String url = "https://twitter.com/search?q=" + keyword; HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); HttpResponse response = httpClient.execute(httpGet); HttpEntity entity = response.getEntity(); if (entity != null) { return EntityUtils.toString(entity); } else { return null; } } } よろしくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう