• 締切済み

XML内のタグの内容を、変数に出来ますか?

こんにちは。 はじめに、FlashやXMLに関しての知識はあまり無い為、分かりづらい点があるかもしれませんが、その点は出来る限り補足します。 自分のブログのタイトルとリンクを取り出し、ホームページ上に表示させる1行ティッカーを作りたいと思っています。 ブログとホームページは違うドメインなので、PHPでRSSを呼び出し、PHPをflashに読み込む事に成功しました。(traceで確認しました) (このような感じになります) RSS>>>[PHP>>>SWF]←ホームページのサーバー そして、読み込んだRSSの中にある「タイトル、記事URL」の部分をそれぞれ変数に代入して表示させたいのですが、RSS(XML)の中から、あるタグの内容だけを取り出し、変数にする事は可能でしょうか? 回答、アドバイスよろしくお願いします。 (XMLを誤解している、こうした方が早い、というような回答も待っています。)

noname#77303
noname#77303
  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

package Q4322233A { import flash.display.Sprite; import flash.text.TextField; public class Main extends Sprite { public function Main():void { //実験環境:Flex 3 SDK + FlashDevelop 3.0.0 Beta 9 + Windows XP SP3 //FlashDevelopのインストールやフォントその他の設定は済ませておくこと。 //なぜかFlashDevelopではtrace関数を実行してもoutputに出力がなされず //その後いくつかのサイトを回って方法を試すもうまくいかなかったので, //flash.display.SpriteにTextFieldを追加して,そこに出力している。 var textfield:TextField = new TextField(); textfield.multiline = true; textfield.width = 2000; addChild(textfield); //http://www.23ch.info/test/read.cgi/swf/1194838207/ //91: //ActionScript3で二点ほど質問をさせてください。 //2) XMLクラスに対してString形式のXPathでアクセスするにはどうしたらいいでしょうか? //94: //2)E4Xが標準だからそっち覚える。どうしてもxpathじゃなきゃまずいなら3.0使わずに2.0のmx.xpath.XPathAPIでどうぞ。 //himajin100000:このE4Xのリテラル,気持ち悪くて嫌いだ。 //使っているFlashDevelop 3.0.0 Beta 9だと,リテラルとコメントの開始が区別できてなくて色分けがおかしい //思想的に好きなのはRSS 1.0なのでサンプルとして取り上げる。 //RSS 0.9x,RSS 2.0,Atomは取り上げない。 //教えてgooはダブルクオートの前後にZERO WIDTH SPACEを埋め込むため,(俺の方で回避不能) //この回答のコードを直接貼り付けても動作しない。該当する文字を置換で置き換えてから使うなり,自分で手打ちするなりしてくれ。 var doc:XML = <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> <channel rdf:about="http://www.xml.com/xml/news.rss"> <title>XML.com</title> <link>http://xml.com/pub</link> <description> XML.com features a rich mix of information and services for the XML community. </description> <image rdf:resource="http://xml.com/universal/images/xml_tiny.gif" /> <items> <rdf:Seq> <rdf:li rdf:resource="http://xml.com/pub/2000/08/09/xslt/xslt.html" /> <rdf:li rdf:resource="http://xml.com/pub/2000/08/09/rdfdb/index.html" /> </rdf:Seq> </items> <textinput rdf:resource="http://search.xml.com" /> </channel> <image rdf:about="http://xml.com/universal/images/xml_tiny.gif"> <title>XML.com</title> <link>http://www.xml.com</link> <url>http://xml.com/universal/images/xml_tiny.gif</url> </image> <item rdf:about="http://xml.com/pub/2000/08/09/xslt/xslt.html"> <title>Processing Inclusions with XSLT</title> <link>http://xml.com/pub/2000/08/09/xslt/xslt.html</link> <description> Processing document inclusions with general XML tools can be problematic. This article proposes a way of preserving inclusion information through SAX-based processing. </description> </item> <item rdf:about="http://xml.com/pub/2000/08/09/rdfdb/index.html"> <title>Putting RDF to Work</title> <link>http://xml.com/pub/2000/08/09/rdfdb/index.html</link> <description> Tool and API support for the Resource Description Framework is slowly coming of age. Edd Dumbill takes a look at RDFDB, one of the most exciting new RDF toolkits. </description> </item> <textinput rdf:about="http://search.xml.com"> <title>Search XML.com</title> <description>Search XML.com's XML collection</description> <name>s</name> <link>http://search.xml.com</link> </textinput> </rdf:RDF> //最後にセミコロンは要らない。 var rdf:Namespace = new Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#"); var rss:Namespace = new Namespace("http://purl.org/rss/1.0/"); //XMLを理解してないと,(どの要素がどの名前空間に属するかとか)右辺がかけないような気がする。 //これは,まぁE4Xじゃなくても同じだけど //その説明は一切しないので勉強して欲しい。 var itemList:XMLList = doc.rss::item; //表示内容 //Processing Inclusions with XSLT:http://xml.com/pub/2000/08/09/xslt/xslt.html //Putting RDF to Work:http://xml.com/pub/2000/08/09/rdfdb/index.html for each(var item:XML in itemList) { textfield.appendText(item.rss::title + ":" + item.rss::link + "\n"); } //後は出力内容に応じてどうぞ。 } } }

noname#77303
質問者

お礼

回答ありがとうございます。 おかげさまで、変数にXML全体を読み込むことは出来ました。 せっかく回答して頂いたのに、説明不足で申し訳ありませんでした。

noname#77303
質問者

補足

すみません! 私の環境は、WindowsXP、Flash8、FlashPlayer9.0で、ActionScript2.0を使用しています。

関連するQ&A

  • PHP変数にXMLのタグ内容を代入するには?

    ■質問内容: 超初心者です。質問が的外れかもしれませんが自己解決できずにいます。何卒ご教授ください。 達成したい内容としてRSS生成をPHPで作成中です。 PHPの $hensu1 = 別ファイルXMLにある<namae>名前</namae>の"名前" を代入したいのですが記述方法が解らず、困っております。 そのほかの質問もありますが、後述します。 ■環境: php:4.3.** (ホスティングの為、サーバの設定変更などできません) ■状況と経緯: 実際のコードを乗せます。 直接ご指摘いただけると、大変ありがたいです。 【rss.php】 <?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <? $hensu1 = "(1)別ファイルXMLにある<namae>名前</namae>の"名前" を代入したい"; $hensu2 = "(2)別ファイルXMLにある<nedan>100円</nedan>の"100円" を代入したい"; $pubjikan ="(3)別ファイルXMLにある<jikan>2009/02/26-17:50</jikan>の"2009/02/26-17:50"を代入したい" ?> <rss version="2.0"> <channel> <title >タイトル</title> <link>http://local/</link> <description>webページ</description> <language>ja</language> <copyright>会社</copyright> <managingEditor></managingEditor> <webMaster></webMaster> <pubDate>Thu, 26 Feb 2009 00:00:00 +0900</pubDate> <lastBuildDate></lastBuildDate> <item> <title>タイトルは<? echo "[ {$hensu1} ]"; ?>です</title> <link>books.xml</link> <description>価格は<? echo "[ {$hensu2} ]"; ?>です</description> <pubDate><? echo $pubjikan; ?></pubDate> ←(4)ここは日付を成型するPHPを記述したいの </item> ~(5)ここに、XMLから繰り返し取得したい(最大5件程度)~ </channel> </rss> --- 【books.xml】 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="table.xsl"?> <books xml:space="default"> <book no="000">  <namae>名前</namae> <nedan>100円</nedan> <jikan>2009/02/26-17:50</jikan> </book> <book no="000"> ←(5)に該当。以降を繰り返し5件程度取得したい。 <namae>名前2</namae> <nedan>200円</nedan> <jikan>2009/02/25-19:30</jikan> ~ ~繰り返し数十件のデータあり ~ </book> </books> --以上-- 上記の(1)~(5)について教えてください。 出来れば具体的な記述でご指摘いただけるか参考サイトをご紹介 下さるとありがたいです。 Domxmlなど自分なりに見当つけてみましたが、上手くいきませんでした。 何卒、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • ハッシュ変数の怪

    お世話になります。 ハッシュ変数の扱い方について教えて下さい。 <最終的にヤリタイコト> ブログのRSSを読み込み、そのブログ自体のタイトル(1つ)を表示するプログラムを作成したい。 その為に、以下の様なプログラムを作成しています。 ------------------------------------ # 頻繁にRSSを読みに行くのを避けるため、 一時的に$blogfileにRSSファイルを保存しています。 $blogfile="./save/blog.rss"; use XML::RSS; use LWP::Simple; # 保存しているRSSデータを解析 $rss = new XML::RSS; $rss->parsefile($blogfile); # サイト情報を取得 $bigtitle = $rss->{channel}; # そして、これにつづけて、 print $bigtitle->{title}; とすると、ブログ名がキチンと印刷されます。 しかし、この場ではブログ名を表示させたくはなく、一旦、スカラー変数に、このブログ名を代入しておき、後になってから、スカラー変数に代入されたブログ名をprint文で表示させたいのです。 この場合、例えば、 print $bigtitle->{title}; の代わりに $blogtitle=$bigtitle->{title}; とやっても、$blogtitleにブログ名は代入されません。 また、$blogtitleをprint文で表示させてみると、 HASH(0x8ddb5d4) と、いつかどこかで見たような表示になってしまいます。 ●ブログ名をスカラー変数に代入する方法をご教授、よろしくお願い致します。(または、上記の方法以外で、とてもカンタンにブログのRSS情報を元に、そのブログ自体のタイトルのみをスカラー変数に代入するperlプログラムがありましたら、教えて下さい) よろしくお願い致します。

    • ベストアンサー
    • Perl
  • rss xmlをhtmlで表示させる。

    rss.xmlでつくったxmlファイルをhtmlで表示させたいのですが、 <link rel="alternate" type="application/rss+xml" title="RSS" href="rss/rss.xml" /> あるサイトでxmlファイル+上記のコードを<head>タグ内にいれると表示される。 と、説明が終わっているのですが、コードを打ちこんでも表示されません。 普通に考えて、これだけだとhtmlページ内のbodyのどこにxmlファイルを表示するのかも指定できてません。 質問は 1、xmlファイルが表示されないのは、何らかのコードをbody内に加えて表示する命令が無いからでしょうか。 その場合どのようなコードを打つべきでしょうか。 2、この方法がそもそも根本的に適切でないのでしょうか。 サイトで調べているとjavasqriptまたはphpによるxmlファイルの表示が多く見受けられました。 phpはまだ手が出せないのでjavasqriptの方法を取る場合、どのようなコードを使えばよいでしょうか。 というのも、サイトによってコードが異なるように感じられます。一番一般的であったり、軽くてよいコードなどがあれば教えていただきたいです。 回答よろしくお願いします。

    • 締切済み
    • XML
  • xmlでswfを読み込むには?

    flashでスライドショーを作っています。 同じフォルダにxmlファイルを作って指定した写真を取り込むようにしています。 そしてその写真のタイトルもフラッシュ内に表示されるところまで作りました。 xmlは以下のようなものです。 <?xml version="1.0" encoding="utf-8"?> <Photo> <picture image="photo01.jpg">タイトル01</picture> <picture image="photo02.jpg">タイトル02</picture> </Photo> そこで、画像とタイトルを読み込むだけでなく、 タイトルごとに別のswfファイル(ボタンを含んだswfファイル)も読みこむようにしたいのですが、 どのようにしたら良いでしょうか? わかる方いらっしゃいましたら、どうぞよろしくお願いします。

  • swfからswfへ変数を渡す

    こんにちは。 今回、質問させていただくのはFlashに出てくる変数についてなのですが、 swfからswfに変数を渡すということがしたいのですが、どうも上手くいきません・・・ やろうとしていることは、まずシューティングゲームのFlashをつくり、 そのスコア(何体敵を倒したか)を別のswfファイルに表示したいのですが・・・ そもそもあまり変数とかに詳しくないので詳しい方がおられましたら是非ご回答お願いします。

  • xmlの表示が良くわかりません。

    環境は windowsxp apache2.0.52 php4.3.9です。 http://news.goo.ne.jp/news/topics/ や http://www.asahi.com/ で提供してくれているrssを自分のhpに表示したいのですが、まったくうまくいきません。 http://php.s3.to/(レッツPHP)で提供してくれているrssちぇっかーを利用してみようと思ったのですが、pearの設定や拡張モジュールの設定の仕方が悪いのか、まったく活用できません。 xmlをhtmlに表示させるコードと同じフォルダにPEAR.phpとparser.php,RSS.phpを入れてみましたがだめでした。 質問は、xmlを使用する際のPEARと必要な拡張モジュールの設定の仕方から、活用の仕方が初心者でもわかるように書かれているHPや、参考書はありませんでしょうか。 (一応、拡張モジュールについては、php.iniのなかの mb_string.dllと、php_domxml.dllの前の;は消したのですが、まずxml自体localの環境で表示してくれません。←自分で作った簡単なxmlなら表示してくれるのですが) また、もしよければ、上記のgooや朝日で提供してくれているrssを表示させられるコードを教えてはいただけませんでしょうか。(ヒントだけでもかまいません。) とても長くなってしまい、また、ピントのずれたことを書いているかもしれませんが、ほとほと参っています。どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP4でXML

    こんにちは。PHPでXMLファイルを書き換えたいのですが、サーバ環境がPHP5ではありません。以下のようにHTMLと同じ方法でphpファイルを読み込むことは不可能なのでしょうか?だとしたら他に良い方法はありますか?困っています。どなたか助けてください。よろしくお願いします。 <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>○○1</title> <link>http://○○</link> <description>ウェブサイトに掲載されている最新の情報を掲載しております。</description> <language>ja</language> <copyright>Copyright (c) 2007 ○○, Inc. All Rights Reserved.</copyright> <pubDate><?php include("../rss/date.php"); ?></pubDate> <item> <title>ニュースリリース</title> <link>http://○○</link> <description><?php include("../rss/news.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> <item> <title>商品一覧ページ</title> <link>http://○○</link> <description><?php include("../rss/prodact.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> <item> <title>沿革</title> <link>http://○○</link> <description><?php include("../rss/corporation.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> </channel> </rss>

    • 締切済み
    • XML
  • PHPでXMLファイルを読み込みたい

    PHPを使ってxmlファイルを読み込んで、タグの中のデータなどを読み込んだりしたいです。 ですが、自作のxmlファイルだと simplexml_load_file()で読み込めません。xmlファイルの文字コードを色々と変えて試してみましたが、できませんでした。 ちなみに以下のコードは正常に動きました。Yahoo!のxmlファイルです。 $url = "http://rss.weather.yahoo.co.jp/rss/days/5710.xml"; $rss = simplexml_load_file($url); 出力は「【 25日(金) 嶺北(福井) 】 晴れ - 23℃/8℃ - Yahoo!天気・災害」でした。 何度かやるうちにアルファベットは表示できても日本語が表示できないということもありました。 また、xmlファイルをphpのプログラムに作らせたいです。そのときに、simplexml_load_file()で読み込める日本語も含むxmlファイルをphpで作成するプログラムを教えていただけると嬉しいです。 お願いします。

    • ベストアンサー
    • PHP
  • AS3でSWF単体でデータをXML化したい

    FLASH CS5(ActionScript3.0以下AS3)でコンテンツを作成しております。パブリッシュされたSWF単体で、内部データをXML化してテキストデータとして保存できるようにしたいのです。そこで問題になるのが、SWF単体でXML化できるものかです。データは単純なCSV形式なのでPHPなどを連携すればXML化や保存まで可能ですが、SWF単体ではどうでしょうか。SWF単体で保存までできなくてもよいです(というかAS3はテキスト出力の機能は無いようです)。内部でXML化さえしてくれればそれを表示させて手動でテキストエディタなどにコピペして保存します。よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 外部XMLのテキスト表示

    WinXP、FLASH MX2004Proで編集しています。 FLASHで外部XMLを読み込んで、テキストを表示させたいと思っています。 XMLファイルはnews.xmlで、 -------------------- <?xml version="1.0" encoding="Shift_JIS" ?> <news> <item> <title>NEWSその1</title> <link>http://www.news01.com</link> </item> <item> <title>NEWSその1</title> <link>http://www.news02.com</link> </item> </news> </xml> -------------------- です。DWで作成したので、Shift-Jisで間違いないと思います。 FLASHでは、ステージ上にダイナミックテキストを配し、インスタンス名・変数名ともに「title_text」にしています。 また、フレームには以下のASを書いています。 -------------------- System.useCodepage = true; newsXML = new XML(); newsXML.load("news.xml"); newsXML.ignoreWhite = true; newsXML.onLoad = function(success) { total = newsXML.firstChild.childNodes.length; title_text.text = newsXML.firstChild.childNodes.firstChild.nodeValue; }; --------------------- 「NEWSその1」が表示されて欲しいところですが、実際には、 「undefind」 です。 ちなみに、 newsXML.onLoad = function(success) { if(success){trace("OK");}else{tarace("NG");} ・・・ としてみたら、「OK」が出力されました。 trace(total); では、「2」が出力されます(あってます)。 しかし、 trace(title_text); は、「undefind」です。 ぜひお力お貸しください。 お願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう