• 締切済み

XMLとかで出来ますか?

XMLもXSLもXSLTも何も知らないので出来るのかわかりませんが。 Aに1・2という情報?属性?を付けて Bに2・3を付けて Cに1を付けて 1が付いているのはA・C 2が付いているのはA・B 3が付いているのはB というように表示するにはどうすればいいでしょう?

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

みんなの回答

noname#85336
noname#85336
回答No.1

私もXMLは素人なんで勉強がてらwebを参考にしつつ作成してみました。 以下のxmlファイルとxslファイルを用意しました。 data.xml ---ここから--- <?xml-stylesheet type="text/xsl" href="result.xsl"?> <data> <d id="A"> <info>1</info> <info>2</info> </d> <d id="B"> <info>2</info> <info>3</info> </d> <d id="C"> <info>1</info> </d> </data> ---ここまで--- result.xsl ---ここから--- <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/data"> <html> <body> <table border="1"> <xsl:call-template name="set"> <xsl:with-param name="num" select="1"/> </xsl:call-template> <xsl:call-template name="set"> <xsl:with-param name="num" select="2"/> </xsl:call-template> <xsl:call-template name="set"> <xsl:with-param name="num" select="3"/> </xsl:call-template> </table> </body> </html> </xsl:template> <xsl:template name="set"> <xsl:param name="num"/> <tr> <td><xsl:value-of select="$num"/></td> <xsl:for-each select="d[info=$num]"> <td><xsl:value-of select="@id"/> </td> </xsl:for-each> </tr> </xsl:template> </xsl:stylesheet> ---ここまで--- 2ファイルを同じフォルダに保存し、IEなどでdata.xmlを開くとご期待通りの答えになっていると思います。 もっといい方法があると思いますが、 質問の内容のようなことは可能ということです。 私も勉強になりました。ありがとうございました(^^)

参考URL:
http://www.w3.org/TR/xslt

関連するQ&A

  • XMLからXML

    こんにちわ。 以下のやり方がわからなく、困っています。 XSLTを使って以下のようなXML→XMLを行いたいのですが。 変更前: <a> <b> <c>abc</c> <d>def</d> </b> </a> 変更後: <b> <c>abc</c> <d>def</d> </b> ようするに、指定したタグ以下のXML構造をそのまま取り出したいのです。 <xsl:template match="/a"> <xsl:apply-templates select="b"/> </xsl:template> だと中身のabc defしか取れません。 <c>とか<d>は、時によって変わる場合、どのようなXSLT を書けばよいのでしょうか? 申し訳ありませんが、わかる方がいれば教えてください。

    • 締切済み
    • XML
  • XML+XSLTでの表示について

    IE10で、XML+XSLTを、ローカルのXMLを開くと体裁が付かず、テキストのみが表示されてしまいます。IE7(WindowsXP)では、正常に体裁がついていたのですが、IE10で何か変更になったのでしょうか? XML上で、 <?xml version="1.0" encoding="shift_JIS"?> <?xml-stylesheet type="text/xsl" href="xxxxx.xsl"?> と指定しています。 よろしくお願いします。

    • ベストアンサー
    • XML
  • XML→PDF出力

    WebページでXMLで表示している内容をPDFとして出力する方法を 教えて下さい。 XML→XSLT→XSL Formatting Object→XSL Formatter→表示 のようにするみたいですが、 Apacheのxerces-j、xalan-j、FOPなどを 用いて実際にはどのようなソース、手順で作成するのか知りたいです。 よろしくお願いします。

    • ベストアンサー
    • XML
  • XMLの実体参照とXSLT

    次のようなXMLファイルをXSLTで処理したいのですが、&baseの部分がうまく表示できません。 どのようにしたら表示できるでしょうか? ■a.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="a.xsl"?> <!DOCTYPE test [ <!ELEMENT name (#PCDATA)> <!ENTITY base SYSTEM "base.xml"> ]> <test> <name>abc</name> &base; </test> ■base.xml <?xml version="1.0" encoding="UTF-8"?> <base>base</base> ■a.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8" /> <xsl:template match="/"> <xsl:apply-templates select="test" /> <xsl:apply-templates select="base" /> </xsl:template> <xsl:template match="test"> name:<xsl:value-of select="name" /> </xsl:template> <xsl:template match="base"> base:<xsl:value-of select="base" /> </xsl:template> </xsl:stylesheet> □結果 name:abc ※base.xmlの内容を表示できない

    • ベストアンサー
    • XML
  • 2つのxmlファイルを利用したリレーションシップ(?)に関して

    2つのxmlファイルを使用し、リレーションシップ(?)を作成してDataGridViewに表示させようとしているのですがうまくいきません。ご教授お願いいたします。 xmlファイル1: <タグ1> <タグ2 属性21="a1" 属性22="a2"></タグ2> <タグ2 属性21="b1" 属性22="b2"></タグ2> <タグ2 属性21="c1" 属性22="c2"></タグ2> </タグ1> xmlファイル2: <タグ1> <タグ2 属性21="a1" 属性22="d2"></タグ2> <タグ2 属性21="b1" 属性22="e2"></タグ2> <タグ2 属性21="c1" 属性22="f2"></タグ2> </タグ1> 表示させたい内容: | d2 | a2 | | e2 | b2 | | f2 | c2 |

  • amazonWebサービスからのxmlの加工について

    amazonWebサービスから取得したxmlをxslによって加工して表示しようとしています。 xsltはちゃんと表示されるのですが、xslからリンクしたcssが適用されません。 記述の仕方が悪いのかと思い、参考に http://xml-jp.amznxslt.com/onca/xml3?dev-t=D2JW5SAFEH7L0B&t=goodpic-22&f=http%3A%2F%2Fwww.goodpic.com%2Fmt%2Faws-list.xsl&KeywordSearch=%25e3%2582%25b5%25e3%2583%25bc%25e3%2583%2595%25e3%2582%25a3%25e3%2583%25b3&page=1&locale=jp&type=heavy&searchWord=&sort=&mode=books-jp こちらのxsl、cssを保存して表示させようとしたのですが、ローカルの時は表示されるのに、レンタルのサーバーにアップロード(あくまで参考のためで……)してから、そのxslを使ってWebサービスからxmlを表示させてみるとやはりcssが適用されません。 文字コードなども触ってみたのですが、一向に改善されませんでした。 他にこの手の質問がないようなので、もしかすると私のPC環境が影響しているのでしょうか。

    • ベストアンサー
    • XML
  • XSLTでの外部XMLファイルの読み込みについて。

    XSLTについて質問がございます。 下記のように、document関数を用いて外部のxmlを取り込んでいるのですが、 もし、そのxmlファイルが存在しなかった場合はエラーとなってしまいます。 この時、対象のxmlファイルが存在するか否かを、XSLTで調べる事は可能なのでしょうか? boolean関数を用いてみたりしたのですが、ファイルがない場合はやっぱりエラーになってしまいます。 どなたかご教授願います。 <!-- STYLESHEET --> <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="xsl1.xsl"/> <xsl:param name="doc" select="document('../XML/import.xml')"/> </xsl:stylesheet>

    • ベストアンサー
    • XML
  • XSLTについて

    入力となるXMLの要素Aに属性が複数存在した場合に、ある属性以外のすべての属性を要素Bに付与して出力したいのですがどのようなXSLTで記述すればいいのでしょうか? 入力例) <sample> <要素 aa="1" bb="2" cc="3">AAAAAAA</要素> </sample> 出力例) <sample> <youso bb="2">AAAAA</youso> </sample> XSLT) <?xml version="1.0" encoding="Shift_JIS"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/ 1999/XSL/Transform" version="1.0"> <xsl:template match="/">   <sample> <xsl:apply-templates/> </sample> </xsl:template> <xsl:template match="要素"> <xsl:copy> <!-- <xsl:copy-of select="@*"/> -->☆ </xsl:copy> </xsl:template> </xsl:stylesheet>

    • 締切済み
    • XML
  • amazonECS4.0 XMLをHTMLに変換出来ません

    amazonECS4.0を利用してRESTリクエスト通信により返ってきたXMLをXSLTによりHTMLに変換したいのですが、うまく行きません... ■解決してほしい点 xmlにて戻ってきたタイトル情報のみを表示させようとしている、xslをアップロードしているのですが、うまくいきません。。。 まずは特定の情報のみを抜き出して表示する方法を知りたいのですが、分かる方いらっしゃいますでしょうか? このXMLに対してタイトル情報と画像情報のみを抜き出して表示出来るようなXSLソースを求めています。 XML、XSL以前にamazonECS4.0的におかしな記述がありましたら、そちらもご指摘お願いします。 ※環境等 サーバー名 s285.xrea.com Apache 1.3.37 PHP 5.1.6 PEARの使用は考えていません。 よろしくお願いします。 ■XML出力URL http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=09CD3TD99AGC2WFY5582&Operation=ItemSearch&Keywords=web&IdType=ASIN&ResponseGroup=Small&SearchIndex=Books&ContentType=text/xml ■HTML出力URL http://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&SubscriptionId=09CD3TD99AGC2WFY5582&Operation=ItemSearch&Keywords=web&IdType=ASIN&ResponseGroup=Small&SearchIndex=Books&ContentType=text%2Fhtml&Style=http%3A%2F%2Fspunkyweb.net%2Famazon%2Famazon%5F2.xsl ■XSL文書URL http://spunkyweb.net/amazon/amazon_2.xsl

    • ベストアンサー
    • XML
  • xml+xslでの変換内容をtextareaへ

    お世話になります。 xml+xslでhtmlに変換する際、その変換内容をtextareaにも表示させるようにしたいのです。 使用ブラウザ:FireFox。現状はFirebugでDOMツリーを手動で参照してる状況です。 現在は、ノードをtextareaに表示しようとすると[object DocumentFragment]とだけ出てしまい、DocumentFragmentという概念あることは分かり、色々調べcreateElement()やcreateTextNode()など、その他思いつく限りの事でテストしてみてるのですが、どうにもノードをHTMLタグとしてtextareaに表示させる事が出来ません。 以下にポイントとなるソースを掲示しますので、どなた様か、お助け願えませんでしょうか --test.html---- <html><head> <meta content="text/html; charset=utf8" http-equiv="content-type"> <title>JS+xslt</title> <script type="text/javascript"> function tramsformlists(xmlFile, xslFile, resultNodeID){ var xml, xslt, newDoc; if(document.all){ xml = new ActiveXObject("Microsoft.XMLDOM"); xslt = new ActiveXObject("Microsoft.XMLDOM"); }else { xml = document.implementation.createDocument("", "", null); xslt = document.implementation.createDocument("", "", null); } xml.async = false; xslt.async = false; xml.load(xmlFile); xslt.load(xslFile); if(document.all){ document.getElementById(resultNodeID).innerHTML = xml.transformNode(xslt); }else { var xsltp = new XSLTProcessor(); xsltp.importStylesheet(xslt); newDoc = xsltp.transformToFragment(xml, window.document); var df = document.createDocumentFragment(); cloneDoc= newDoc.cloneNode(true); document.getElementById("Div"+resultNodeID).innerHTML = ""; document.getElementById("Div"+resultNodeID).appendChild(newDoc); t = document.msg_form.TextareaTest.value; document.msg_form.TextareaTest.value =t + df.appendChild(cloneDoc); } } </script> </head><body> <form name="msg_form"> <ul> <li> <input type="button" value="Menu" onclick="tramsformlists('test0.xml','test0.xsl','Test')"><br> <div id="DivTest"></div> <textarea cols="50" rows="10" id="TextareaTest">あああああああ</textarea> </li> </ul> </form> </body></html> --test0.xml-- <?xml version="1.0" encoding="utf-8"?> <root> <nolink_logo> </nolink_logo> </root> --test0.xsl-- <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="utf-8"/> <xsl:template match="root"> <xsl:apply-templates select="nolink_logo"/> </xsl:template> <xsl:template match="nolink_logo"> <xsl:call-template name="Test" /> </xsl:template> <xsl:template name="Test"> <xsl:variable name="menu" select="document('test1.xml')/root"/> <div>画像を表示 <xsl:for-each select="$menu"> <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="url[1]"/> </xsl:attribute> <xsl:attribute name="target">_blank</xsl:attribute> <xsl:element name="img"> <xsl:attribute name="src"> <xsl:value-of select="img[1]"/> </xsl:attribute> </xsl:element> </xsl:element> </xsl:for-each> </div> </xsl:template> </xsl:stylesheet> --test1.xml-- <?xml version="1.0" encoding="utf-8"?> <root> <img>http://domain/image2.gif</img> <url>http://domain/test.html</url> </root>

専門家に質問してみよう