• 締切済み

XMLをHTMに変換

Sample.xmlをSample.htmに変換するXSLTファイルに作成して、 XMLファイルをブラウザで表示すると自動でスタイルが適用されるよういするには どうしたらいいでしょうか? よろしくお願いします。 ↓Sample.xml <?xml version="1.0" encoding="UTF-8" ?> <!-- below is a data for order --> <itemdata> <item number="i001"> <itemId>pc-x1</itemId> <itemName>desktopPC X1</itemName> <registDate>2009-05-10</registDate> <description> <![CDATA[ powerful! & high grade!, <win7>usable, URL http://www.pcx1/ ]]> </description> <note /> <stock>95</stock> <check /> </item> </itemdata>

  • XML
  • 回答数1
  • ありがとう数4

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

変換するためのxsltを指定する記述が無いとパーサは何もしてくれないよ http://www.google.com/search?hl=ja&q=xslt%E3%82%92%E6%8C%87%E5%AE%9A%20%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB

関連するQ&A

  • xml について

    少し聞かせてください。 今、MVC で DB から値を出力しています。 そこで質問なのですが、どのタイミングでどのように xml に書き出すかが分かりかねています。 いろいろHPを見た結果なのですが、jsp で <%@ page contentType="text/xml" %> <?xml version="1.0" encoding="SJIS"?> <name="situmon"> <actor> <f_name>goo</f_name> <l_name>osiete</l_name> </name> などとすると、ブラウザで表示されるのは分かるのですが、xmlファイルとしての書き出しが分かりません。 xml ファイル書き出しと言う言葉が適切ではないのではとも思います。 主としての目的は、 XSLT シートを利用してのブラウザ表示です。 まず最初の xml ファイルの作成の仕方を、サンプル、HPでもかまいませんので回答よろしくお願いします。 環境:win98 JRun3.0

    • ベストアンサー
    • Java
  • PHPでxmlファイルへのデータの上書き方法

    混乱してしまっています。初心者です。 前回もPHPでの上書き方法をご教授いただいたのにごめんなさい。 PHPを使って、RSSを更新していくフォームを作成しております。 「入力した内容をPOSTでうけとって、xmlファイルにwで書き込む」 としましたら、最新の項目はでますが、履歴がきえます。もちろんです。 RSSでタグを書いていくとき更新情報は<item></item>にはいりますが、 その上にも下にもスクリプトがありますよね。<item></item>だけかきこんでいくというというのは どういった命令をしていけばいいのですか? お昼からずっと考えて、かなりまいっています。 お答えくださる方々にはとるにたらないような初歩的は質問かと存じますが、どうかご教授ください。 よろしくお願いします。 ↓「きえるRSSのなりそこない」 <!doctype html> <html> <head> <meta charset="jis" > <title>RSS登録</title> <body> <?php $title=$_POST["title"]; $text=$_POST["text"]; $url=$_POST["url"]; $rss=' <?xml version="1.0"?> <rss version="2.0"> <channel> <title>●●●</title> <link>●●.com</link> <description>最新の●●です</description> <lastBuildDate>Tue, 30 Jul 2013 22:32:44+0900</lastBuildDate> <item><title>'.$title.'</title><link>'.$url.'</link><description>'.$text.'</description></item> </channel> </rss> '; $f=fopen("rss.xml","w"); fputs($f,$rss); fclose($f); ?> </body> </html>

    • ベストアンサー
    • PHP
  • 親子関係にない要素を限定して取り出すには?

    <test>  <item id="001">   <name>foo</name>  </item>  <item id="002">   <name>bar</name>  </item>  <detail>   <itemid>001</itemid>   <yomigana>フー</yomigana>  </detail>  <detail>   <itemid>002</itemid>   <yomigana>バー</yomigana>  </detail> </test> 上記のようなXML文書から次のようなcsvファイルをつくろうと考えています。 フー,foo バー,bar つまり、「item要素の属性idの値」と「itemid要素の値」が同じものを対にして並べたいのですが、 これがなんともxslでうまいやり方が書けません。 (※実際には、item要素とdetail要素が上記のようにいくつも並びます。 item要素やdetail要素の数は状態によって可変ですが、item要素とdetail要素は必ず1対1で存在します。) どなたかご教示お願いします。 (※XML文書の構成改変はできません)

    • ベストアンサー
    • XML
  • XMLをXSLを使いHTMLに変換したいのですが・・・・

    あるXML形式のXSL用に次のようにスタイルシートを作成致しました。(例) <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes" /> <xsl:template match="/"> <html lang="ja"> <head> <title>○○情報</title> </head> <body><xsl:apply-templates select="ProductInfo"/></body> </html> </xsl:template> <xsl:template match="Responce/Details"/> <h2><xsl:value-of select="Hid"/></h2> <h2><xsl:value-of select="TotalItems"/></h2> <h2><xsl:value-of select="TotalPages"/></h2> <h3><xsl:value-of select="ItemID"/></h3> <h3><xsl:value-of select="ShopID"/></h3> <h3><xsl:value-of select="ProductName"/></h3> <h3><xsl:value-of select="Price"/></h3> <h3><xsl:value-of select="ImageUrlSmall"/></h3> <h3><xsl:value-of select="ImageUrlMedium"/></h3> <h3><xsl:value-of select="mageUrlLarge"/></h3> <h3><xsl:value-of select="URL"/></h3> <h3><xsl:value-of select="MobileURL"/></h3> <h3><xsl:value-of select="Manufacture"/></h3> <h3><xsl:value-of select="Availability"/></h3> <h3><xsl:value-of select="Stock"/></h3> <h3><xsl:value-of select="StockInfinity"/></h3> <h3><xsl:value-of select="ItemDetail"/></h3> <h3><xsl:value-of select="SalesStatus"/></h3> <h3><xsl:value-of select="CategoryID"/></h3> </xsl:template> </xsl:stylesheet> とスタイルシートを作成いたしました。 変換するHMLは <?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl" href="○○.xsl"?> - <ProductInfo> - <Responce> <Hid>○○○○</Hid> <TotalItems>○○○○</TotalItems> <TotalPages>○○○○</TotalPages> - <Details> <ItemID>○○○○</ItemID> <ShopID>○○○○</ShopID> <ProductName>○○○○</ProductName> <Price>○○○○</Price> <Manufacture>○○○○</Manufacture> <Availability>○○○○</Availability> <Stock>0○○○○</Stock> <StockInfinity>○○○○</StockInfinity> <ItemDetail>○○○○</ItemDetail> <SalesStatus>○○○○</SalesStatus> <CategoryID>○○○○</CategoryID> </Details> </Responce> </ProductInfo> 以下<Details>のみ複数繰り返しされます。 この通りに作成したのですが、XMLファイルをウインドウに表示しようとしてもエラーが報告されます。 XSLに繰り返し用のタグを入れても、まったく表示されません。 ちなみにIE7を使用しています。 もし間違っている箇所が分かる方がいらっしゃいましたら、教えていただけませんか? よろしくお願いいたします。

    • ベストアンサー
    • XML
  • MagpieRSSを使用して自分のHPにxmlを表示させる方法

    お世話になります。 データベースよりxmlを生成し、自分のHPに1ページに埋め込みたいと思っています。 いろいろなサイトを参考に、MagpieRSSを使用して表示させたいのですが、コードのサンプルに記載されている他サイトのRSS・xmlは表示できるのですが、ローカルのxmlは下記のエラーが出てしまい表示できません。 Warning: MagpieRSS: Failed to parse RSS file. (not well-formed (invalid token) at line 9, column 21) in /aaa/rss/rss_fetch.inc on line 238 変更した部分は、表示するxmlのURLのみです。 使用しているphpのバージョンは4.34、MagpieRSSのバージョンは0.72です。 問題のrss.phpのソース↓ <?php require_once 'rss_fetch.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $url = 'http://www.aaa.com/rss.xml'; $rss = fetch_rss($url); if ($rss && !$rss->ERROR) { drawRSS($rss); }else{ echo "取得できませんでした。"; } function drawRSS($rss){ $items = array_slice($rss->items, 0, 10); echo "<ul>\n"; foreach ($items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); echo "<li><a href=\"$url\">$title</a></li>\n$description"; } echo "</ul>\n"; } ?> 何か、対処方法をご存知の方教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • XML
  • RSS Feedの外部ファイル読み込み

    RSS Feedのソースの中に外部ファイルを読み込むことは出来ますでしょうか? 以下のような感じで、RSS Feedのrss.xmlにcontents.xmlをインクルードすることは、可能でしょうか。 可能であれば、どのように記述すれば良いでしょうか? 分かる方、よろしくお願い致します。 rss.xml----------------------------------------------------------- <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xml:lang="ja"> <channel> <title>RSSのタイトル</title> <link>http://~</link> <description>RSSの説明</description> <language>ja</language> <copyright>RSSのコピーライト</copyright> <lastBuildDate>日付</lastBuildDate> <item> <title>タイトル1</title> <link>http://~</link> <description>タイトル1の説明</description> <category>タイトル1のカテゴリ</category> <pubDate>タイトル2の日付</pubDate> </item> ここに「contents.xml」の内容を読み込みたい </channel> </rss> ------------------------------------------------------------------ contents.xml------------------------------------------------------ <?xml version="1.0" encoding="UTF-8" ?> <item> <title>タイトル2</title> <link>http://~</link> <description>タイトル2の説明</description> <category>タイトル2のカテゴリ</category> <pubDate>タイトル2の日付</pubDate> </item> ------------------------------------------------------------------

    • ベストアンサー
    • XML
  • 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
  • ニュースティッカーを作る

    初めて質問させていただきます。 外部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 を JavaScript で表示したい

    初心者です。XML の属性を JS で表示したいのですが、属性の表示をJSで記入すると属性部分(?)が「null」と表示されるだけで元の XML の内容が正しく反映されません。以下、html のコメントした部分が自分の足したコードですが、何が間違っているのかご教示いただけると有り難いです。宜しくお願いします。 ---XML-[orders.xml]------------------ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE orders SYSTEM "orders.dtd"> <orders> <order> <customerid limit="1000">1111111</customerid> <status>発送済み</status> <item instock="Y" itemid="SA15"> <name>商品名ABC</name> <price>825.00</price> <qty>1</qty> </item> </order> </orders> ---/XML------------------- ---DTD--[orders.dtd]----------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE orders SYSTEM "orders.dtd"> <orders> <order> <customerid limit="1000">1111111</customerid> <status>発送済み</status> <item instock="Y" itemid="SA15"> <name>商品名ABC</name> <price>825.00</price> <qty>1</qty> </item> </order> </orders> ---/DTD------------------- ---html--[hoge.html]----------------- <?xml version = "1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">​ <html xmlns = "​http://www.w3.org/1999/xhtml">​ <head> <title>A Parser Test</title> <script type="text/javascript"> var tab="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" function printElement(indent, node) { var i; if (node.nodeType == 3) {document.write("<br />" +indent + node.nodeValue); document.write("<br />" +indent + "attributes: "+ node.attributes);} <!--この1行を足しました。誤動作しています(TT)--> else { document.write("<br />" +indent + "[" + node.Name + "]"); for (i = 0; i < node.childNodes.length; i++) { printElement(indent+tab, node.childNodes[i]); } document.write("<br />" +indent + "[/" + node.nodeName + "]"); } } var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("orders.xml") if (xmlDoc.parseError.errorCode != 0) { document.write("<br />Error Code: "); document.write(xmlDoc.parseError.errorCode); document.write("<br />Error Reason: "); document.write(xmlDoc.parseError.reason); document.write("<br />Error Line: "); document.write(xmlDoc.parseError.line); document.write("<br />"); } else { document.write("<strong>ファイルはパーサーを通りました</strong><br />"); document.write("<p /><h1>ツリー構造の表示</h1><p />") printElement("", xmlDoc.documentElement); } </script> </head> <body> </body> </html> ---/html-------------------

  • RSSのXMLロードで失敗してしまう

    RSSのデータを取得する、という処理を行いたいのですが、 文字コードの件でひっかかってしまっているようで なかなか前に進むことができません。 ************ // RSSの内容を取得する $rss_text = file_get_contents(※RSSのフィードURL); // RSSの文字エンコーディングを変換→再変換 $rss_text = mb_convert_encoding($rss_text, 'SJIS', 'UTF-8'); $rss_text = mb_convert_encoding($rss_text, 'UTF-8', 'SJIS'); $rss_text = preg_replace('/[\x00-\x1f]/', '', $rss_text); // RSSをパースする $rss_xml = new SimpleXMLElement($rss_text); if ($rss_xml) { // XML解析に成功した場合 // SimpleXMLElementオブジェクトからデータを取得 $items = $rss_xml->item; foreach($items as $item) { echo 'ID:'. $item->guid. '<br />'; echo 'リンク:'. $item->link. '<br />'; echo '日付:'. $item->pubDate. '<br />'; echo 'タイトル:'. $item->title. '<br />'; echo '本文:'. $item->description. '<br />'; } } ************ こういったコードを組んでいるのですが、現状では Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : attributes construct error in... Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in... Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Couldn't find end of Start Tag rss line 1 in... Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in... Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Extra content at the end of the document in... Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in... このようなエラーが表示されてしまいます。 自分なりに文字コードを処理しているつもりではあるのですが、 他にも何かしなければならないことがあるのでしょうか? どうぞ知恵を貸していただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう