XMLから取得したアドレスをテキスト表示し、リンクを貼りたい

このQ&Aのポイント
  • XMLから取得したアドレスをテキスト表示し、同じアドレスのリンクを貼りたい方法がわかりません。
  • htmlTextを使用して試しましたが、うまくいきませんでした。
  • 変数を使用して解決する方法があれば教えていただきたいです。
回答を見る
  • ベストアンサー

xmlから取得したアドレスにリンクを貼りたい。

xmlから取得したページアドレスをダイナミックテキストに表示、リンクを貼りたいのですがうまくいきません…。 htmlTextを使用してかなり強引に記述しましたがやっぱり不可能でした。(本来アドレスを指定するべきところにノードの参照を直接書いた) dataText.html=true; dataText.condenseWhite=false; dataText.htmlText = <a href='weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue'> weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue </a> やりたいことは 1・xmlから取得したアドレスをテキスト表示。 2・そのアドレスと同じアドレスのリンクをそのテキストに貼る。 です。 1だけであればtextで表示指定するだけなので出来たのですが 1と2を兼ね合おうとするとどうしてもうまくいきません。 htmlTextではできないのでしょうか? 変数などで解決できるのであればその方法を教えて頂きたいです。 flashのバージョンは8です。 初歩的な質問ですいません。よろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

>> 1だけであればtextで表示指定するだけなので出来たのですが ということであれば(あればが条件です), dataText.htmlText = <a href='weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue'> weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue </a> こう↑ではなくて, dataText.htmlText = "<a href='" + weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue + "'>" + weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue + "</a>"; こう↑ではないでしょうか。 単に変数部分と文字列部分を混同しているだけだと思います。 XMLデータがないので, 正確には実験・検証できませんが, 文字列部分(実数部分)と,変数部分(変数の値を参照する部分)をきっちり区別認識してコーディングしてください。 例えば myA =1+2+3; dataText.htmlText = myA + "です"; これで "6です" が表示されます。 ===================== 正確には実験・検証できませんが, 以下は勝手なデータと 勝手なスクリプトでの動作検証結果です。 weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue これから↑次の↓ようなXMLデータ構造が推測されます。  weather_xml    └firstChild       ├childNodes[0]       │   ├childNodes[0]       │   │   ├firstChild.nodeValue       │   │   …       │   ├childNodes[1]       │   │   ├firstChild.nodeValue       │   │   …       │   …       ├childNodes[1]       │   ├childNodes[0]       │   │   ├firstChild.nodeValue       │   │   …       │   ├childNodes[1]       │   │   ├firstChild.nodeValue       │   │   …       │   …       ├childNodes[2]       │   ├childNodes[0]       │   │   ├firstChild.nodeValue       │   │   …       │   ├childNodes[1]       │   │   ├firstChild.nodeValue       │   │   …       │   …       … というわけで, 「myweather.xml」というXMLを次のように作成しました。 ---「myweather.xml」------------------------- <全国の天気> <北海道地方> <北海道>http:// hokkaidou/</北海道> </北海道地方> <東北地方> <青森県>http:// aomori/</青森県> <秋田県>http:// akita/</秋田県> </東北地方> <関東地方> <東京>http:// toukyou/</東京> <神奈川>http:// kanagawa/</神奈川> </関東地方> </全国の天気> ------------------------------------------- Flash で新規ドキュメントを作成し, 上の「myweather.xml」と同じフォルダに保存後, ステージ上に, 「dataText」 というインスタンス名の HTMLレンダリングにチェックを入れたダイナミックテキストを用意し, _root の フレーム1 のスクリプトとして次のように書きました。 ---フレーム1---------------------------------- System.useCodepage = true; // XMLオブジェクト の作成 weather_xml = new XML(); // // XMLオブジェクト.onLoad 関数の定義 weather_xml.onLoad = function(seikou) { if (seikou) { dataText.html = true; dataText.condenseWhite = false; dataText.htmlText = "<a href='"+weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue+"'>"+weather_xml.firstChild.childNodes[2].childNodes[1].firstChild.nodeValue+"</a>"; } else { trace("ロード失敗"); } }; // // XMLオブジェクト に外部XML をロード weather_xml.load("myweather.xml"); weather_xml.ignoreWhite = true; ------------------------------------- そして「制御」→「ムービープレビュー」で実行した結果, 「dataText」 というインスタンス名の ダイナミックテキスト には, 「http:// kanagawa/」と表示され,リンクもちゃんとかかりました。 ただし,「http:// kanagawa/」というURLは実際には存在しませんから,  「i」ページを表示できません。 などとなり, 当然そのページは開きませんけど, そのページに行こうとすることは確かです。

din1451
質問者

お礼

丁寧なご説明ありがとうございました。 ご指摘を受けて試したみたところ上手くリンクがかかりました。 xml自体触るのが初めてで舞い上がっていたというか 改めて見てみるととても単純なミスなようでお恥ずかしい限りです。 本当にありがとうございました。

関連するQ&A

  • Flashにブログ更新情報を表示する

    Flash初心者です。 Flashにブログのatom(rss.xml)を読み込み ブログタイトルや、最新の記事タイトル3つを表示させようと思っています。 ちょうど良いサイトがあり、 http://allabout.co.jp/gs/flash/closeup/CU20090926E/ に従い、1フレーム目に ============================================================ System.useCodepage = true; newsData = new XML(); newsData.ignoreWhite = true; newsData.load("(自身のブログTOPへのフルパス)/atom.xml"); ↑(GoogleのBlogger)のrss.xmlをフルパスで指定しました。↑ ============================================================ と指定し、 10フレーム目に ============================================================ //サイトのタイトルを取得 siteTitle = newsData.firstChild.childNodes[0].childNodes[2].nodeValue; //サイトのURLを取得 siteUrl = newsData.firstChild.childNodes[0].childNodes[6].nodeValue; //記事タイトルを格納する変数 item1Title = newsData.firstChild.childNodes[0].childNodes[13].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[13].childNodes[10].nodeValue; item1Title = newsData.firstChild.childNodes[0].childNodes[14].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[14].childNodes[10].nodeValue; item1Title = newsData.firstChild.childNodes[0].childNodes[15].childNodes[4].nodeValue; item1Url = newsData.firstChild.childNodes[0].childNodes[15].childNodes[10].nodeValue; //整形してテキストボックスに表示 // site.htmlText = "<b><a href='" + siteUrl + "'>" + siteTitle + "</a></b>"; item.htmlText = "<b>新着情報</b>" if(item1Title != undefined){ item.htmlText += "<a href='" + item1Url + "'>" + item1Title + "</a>"; } if(item2Title != undefined){ item.htmlText += "<a href='" + item2Url + "'>" + item2Title + "</a>"; } if(item3Title != undefined){ item.htmlText += "<a href='" + item3Url + "'>" + item3Title + "</a>"; } ============================================================ と指定したxmlに合わせてxmlの内容の取り出し指定を変更しましたが、 「URL '(自身のブログTOPへのフルパス)/atom.xml' を開く処理のエラー」 という出力エラーが出てしまいます。 理解せずに作っているので、何が悪いのかまったくわかりません。 よろしくお願いいたします。

  • rdfから取得したW3CDTF形式の日付表示形式を変更したい

    time_xml.firstChild.childNodes[i].childNodes[5].firstChild.nodeValue (dc:date内)から参照する 2006-11-29T10:45+09:00(YYYY-MM-DDThh:mm:ssTZD) といったW3CDTF形式の日時データを 2006/11/29 10:45 のように表示形式を変換してtimetextというダイナミックテキストに 出力したいと考えていますがどうしてもうまくいきません。 どうか変換する方法を教えて下さい。環境はflash8です。 よろしくお願いします。

    • ベストアンサー
    • 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
  • xmlから取得したurlをflash内で設定

    flash内に設置した複数のボタンに外部xmlから取得したurlを設定したいです。 検索したり過去の質問も見てましたが、いまいちわかりませんでしたのでご教授頂けたらと思います。 現在は↓のようになっています。 これですと1つしか読み込めないので、複数設定してそれぞれのリンクを設定したいと思っています。 わかる方いらっしゃいましたら何卒よろしくお願い致します。 xmlのソース(url.xml) <?xml version="1.0" encoding="UTF-8"?> <top> <menu> <title>url</title> <url>http://www.google.co.jp/</url> </menu> </top> FLASH内のスクリプト(フレーム) function startIndexMenu(success) { if (success == true) { rootNode = index_xml.firstChild; firstMenuNode = rootNode.firstChild; childMenuNode = firstMenuNode.firstChild; updateMenu(childMenuNode); } // end if } // End of the function function updateMenu(newMenuNode) { slideText = newMenuNode.firstChild.nodeValue; slideText_op = newMenuNode.nextSibling; urlNode = slideText_op.firstChild.nodeValue; nextMenuNode2 = firstMenuNode.nextSibling; slideText2 = nextMenuNode2.firstChild.nodeValue; nextMenuNode3 = nextMenuNode2.nextSibling; slideText3 = nextMenuNode3.firstChild.nodeValue; } // End of the function index_xml = new XML(); index_xml.onLoad = startIndexMenu; index_xml.load("url.xml"); index_xml.ignoreWhite = true; ボタンに設定してるスクリプト on (release) { getURL(_root.urlNode, ""); }

    • ベストアンサー
    • Flash
  • XMLから読み込んだテキストをリンク表示する方法

    初心者です。 XMLからテキストデータを読み込んで、 リンクを貼り付けようとしてるのですが、うまくいきません。 どなたかご教授いただけないでしょうか? ■XMLの中身 <?xml version="1.0" encoding="UTF-8"?> <file> <visual> <gazou>./main/001.jpg</gazou> <thumb>./navi/thumb_001.png</thumb> <url>http://www.yahoo.co.jp/</url> </visual> <visual> <gazou>./main/002.jpg</gazou> <thumb>./navi/thumb_002.png</thumb> <url>http://www.google.co.jp/</url> </visual> <visual> <gazou>./main/003.jpg</gazou> <thumb>./navi/thumb_003.png</thumb> <url>http://okwave.jp/</url> </visual> <visual> <gazou>./main/004.jpg</gazou> <thumb>./navi/thumb_004.png</thumb> <url>./test.html</url> </visual> </file> ■ASの一部↓ menu_mc["btn_mc"+i].onPress = function() { getURL(myXML.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue,"_blank");

    • ベストアンサー
    • Flash
  • VBscriptでXMLデータの抽出に関する質問

    教えて下さい。以下のようなXMLファイルがあります。 <?xml version="1.0" encoding="Shift-JIS"?> <ROOT> <INFO> <NO>0001</NO> <NAME>ABC</NAME> <COMMENT> </COMMENT> <AGE>30</AGE> </INFO> </ROOT> これを以下のようにVBScriptにてデータを取り出したいです。 Dim DOM, docRoot, node, nodeList, i, m Dim objADO, objADO2 Dim objRS Dim sqlstmt, strSQL Dim no, comment 'DOMオブジェクト生成 Set DOM = CreateObject("Microsoft.XMLDOM") '同期モード DOM.async = True 'XMLを読み込む DOM.load("11.xml") 'ルートセット Set docRoot = DOM.documentElement 'ノードの設定 Set nodeList = docRoot.selectNodes("/ROOT/INFO") 'ループ For Each node In nodeList For i = 0 to node.ChildNodes.length - 1 Select case node.childNodes(i).nodeName case "NO" no = node.childNodes(i).firstChild.nodeValue case "COMMENT" comment = node.childNodes(i).firstChild.nodeValue End select Next Next ところがCOMMENTタグのようにデータが空のものがあると 「オブジェクトがありません」とエラーになります。 if Not IsNull(node.childNodes(i).firstChild.nodeValue) then というようにもやってみましたが、これでも同じエラーとなってしまいます。 何か方法はないでしょうか?アドバイスを宜しくお願いします。

    • ベストアンサー
    • XML
  • xmlのデータ取得方法について

    WshでXMLの取り込みをしているのですが、あるタグにくるとエラーが出ます。 どのように処理をすればよろしいのでしょうか? ■ ソース(抜粋) objNode.Load("ファイル名") For Each tmp In objNode.getElementsByTagName("東京都") For Each tmp2 In tmp.ChildNodes If tmp2.hasChildNodes Then For Each tmp3 In tmp2.getElementsByTagName("新宿区") For Each tmp4 In tmp3.ChildNodes If tmp4.nodeName = "AAA" Then n1 = tmp4.firstChild.nodeValue End If If tmp4.nodeName = "BBB" Then n2 = tmp4.firstChild.nodeValue End If Next Next End If Next Next ■ XMLデータ <東京都> <新宿区> <AAA> "大人の町" </AAA> <BBB /> <----------この形式のタグでエラーが出ます。 </新宿区> </東京都> <BBB />は、値が無いので、firstChildではエラーになるみたいです。("tmp4.firstChildはオブジェクトがありません。"とでます。) 以上ご教授よろしくお願いします。

  • xmlをjavascriptで読み込み、HTMLに表示させようとしてい

    xmlをjavascriptで読み込み、HTMLに表示させようとしています。 IEでは出来たのですが、それ以外でのブラウザでどうしても読み込むことが出来ません。 簡単なxmlを作ります。例えばこの『これを表示』というテキストをfirefoxで表示させたい場合はどのように書けば良いのでしょうか? <?xml version="1.0" encoding="UTF-8"?> <items> <item>これを表示</item> </items> 今はこのようなjsを作っています。 アラートのAAAでxmlのテキストを表示させるようにしたいのですが・・・ ノードへのアクセス方法?が間違っているのはわかっているんです。ただ、検索して調べても色々出てきて、色々試しても上手くいかず・・・どうしても分がわかりません。 すみません、どなたかご指摘お願い致します!! xmlData = new XMLHttpRequest(); // XMLドキュメントをDOMで扱うためのオブジェクトを作る xmlData.overrideMimeType("sample.xml"); // XMLドキュメントを読み込む var AAA = xmlItemData.documentElement.childNodes[1].childNodes[1].text; alert(AAA); 宜しくお願い致します。

  • ニュースティッカーを作る

    初めて質問させていただきます。 外部xmlを読み込んでニュースティッカーを作りたいのです。 ・タイトルが右から流れてある時点でストップ、そして左へ消えていく。 ・タイトルにその記事へのリンクを貼る。 タイトルを表示させることは出来たのですが、動きとリンクを貼ることができません。 WinXP,FlashMX で作業をしております。 どなたか教えていただけないでしょうか? よろしくお願い致します。 ・外部xmlファイル test.xml <?xml version="1.0" encoding="Shift_JIS" ?> - <story> - <item> <title>NEWSその1</title> <description>記事の内容</description> <link>http://www.news01.com</link> </item> - <item> <title>NEWSその2</title> <description>記事の内容</description> <link>http://www.news02.com</link> </item> - <item> <title>NEWSその3</title> <description>記事の内容</description> <link>http://www.news03.com</link> </item> - <item> <title>NEWSその4</title> <description>記事の内容</description> <link>http://www.news04.com</link> </item> </story> ステージにダイナミックテキストを配置(インスタンス名:news_txt) ・rootの第一フレーム System.useCodepage = true; news_txt.html = true; my_xml = new XML(); my_xml.ignoreWhite = true; // 外部 XML ロード完了時の処理 my_xml.onLoad = function(success) { // ロードに成功すれば if (success) { // rootNode に my_xml.firstChild を設定 rootNode = my_xml.firstChild; // ニュースのエレメント数を取得 nodeLen = rootNode.childNodes.length; news_txt.htmlText = rootNode.childNodes[0].firstChild; myID = setInterval(changeTopic,5000); } else { trace("Error loading XML."); } }; // インスタンス my_xml に外部XML をロード my_xml.load("test.xml"); var cnt = 0; function changeTopic() { if(cnt<nodeLen-1){ cnt++; }else { cnt=0; } // news_txt.htmlText = rootNode.childNodes[cnt].firstChild; }

    • ベストアンサー
    • Flash
  • 空のXMLを判別する

    <?xml version="1.0" encoding="utf-8" ?> <set> <error></error> <data>2500</data> </set> 上記のようなXMLファイルを.loadを使用して読み込みます。 errorが無い場合に~という処理をしたいのですが どのように「空」の状態を判断すればいいのかが分かりません。 this.firstChild.childNodes[0]でfalse等などの条件を入れてみたのですがうまくいきませんでした。 errorがあると <error>指定のアルバムは存在しません</error> というような感じで文字列が入り、その文字をダイナミックテキストdispで表示、処理を停止します。 環境はMXです。 宜しくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう