
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 …
■HTML出力URL
http://xml-jp.amznxslt.com/onca/xml?Service=AWSE …
■XSL文書URL
http://spunkyweb.net/amazon/amazon_2.xsl
No.2ベストアンサー
- 回答日時:
>どこかおかしな点がありますでしょうか?
指摘しようとしたら実はわからなかったので,敢えて検討せずにごまかしてました。ちぇー許してくれないか。
手元での検証の結果とそれを元にした検証でひとつはっきりしました。
======================
http://developer.mozilla.org/ja/docs/Introductio …
>注意すべきなのは、【XPath では接頭辞のない QName は名前空間が null の要素にのみマッチすると定義されている】という点です。XPath にはデフォルト名前空間を取得する手段はありません。名前空間が null ではない要素や属性にマッチさせるには、接頭辞付きの名前テストを使い、その接頭辞を名前空間にマッピングする名前空間リゾルバを作成する必要があります。詳しくは下記のユーザ定義の名前空間リゾルバを作成する方法を参照して下さい。
=================
だそうです
現に手元の別ソースのamazon名前空間接頭辞をデフォルト名前空間にして取り除いたら結果が異なりました(汗
あとはほとんど影響ありません。前回の回答の地点でわかっていた内容ばかりです
「Item要素の直接の子としてTitle要素は存在しないので,<xsl:value-of select="ItemAttributes/Title" />としないとならない点。
それから,xsl:apply-templatesのselectを省略したときは
その全ての子要素(【OperationRequest要素を含みます!!】)にテンプレートルールを適用する
ビルトインテンプレートのおかげで、xsl:value-of要素のselect属性でテキストノードを指定しなくてもそのテキストが表示されます
http://www.asahi-net.or.jp/~PS8A-OKZK/xml/xslt10 …
http://www.asahi-net.or.jp/~ps8a-okzk/xml/memo/m …
上記で述べたことを考えると,これはRequestId要素のテキストノードやRequestProcessingTime要素のテキストノードにも適用されていますので注意!
No.1
- 回答日時:
==============xsl.xsl===============
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:amazon="http://webservices.amazon.com/AWSECommerceServic …
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="amazon"
>
<!--
「名前空間なし」
と
「名前空間が指定されたデフォルト名前空間」
は明確に異なる。match属性やselect属性等に指定されるXPathも
名前空間接頭辞をつける必要があるので注意。
Firefoxのソース表示では名前空間宣言が表示されないようなので
気づきにくい。注意。
-->
<!--
個人的な好みからmethodはxmlに変更している
script要素等をhead要素に埋め込むときには注意すること。(#PCDATA)
個人的には外部のファイルにすることを強く勧める。
-->
<xsl:output
method="xml"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
indent="yes"
/>
<xsl:template match="/amazon:ItemSearchResponse">
<html lang="ja">
<head>
<link rel="stylesheet" href="normal.css" type="text/css" media="screen"/>
<!--
オフラインで実験しているが,質問者様のサーバによってはCSSファイルが同一サーバ同一ディレクトリに配置できないかも
その場合はもちろんhref属性を書き換えること
-->
</head>
<body>
<xsl:apply-templates select="amazon:Items/amazon:Item"/>
</body>
</html>
</xsl:template>
<!-- xsl:for-eachを使わない記法にした。使ったときの方法がわからんかったので(汗-->
<xsl:template match="amazon:Item">
<p class="Itemtitle"><xsl:value-of select="amazon:ItemAttributes/amazon:Title" /></p>
<!-- font要素を撤廃し,class属性を付与,外部CSSによって,見た目を制御する。-->
</xsl:template>
</xsl:stylesheet>
=====normal.css============
@charset "UTF-8";
.Itemtitle{
color:#FF0000;
}
この回答への補足
ご回答ありがとうございました。
http://spunkyweb.net/amazon/index_test.html
の3というリンクで上記のxslを利用しているのですが、
http://spunkyweb.net/amazon/amazon_2.xsl
と同じくタイトル以外もダッーと表示されてしまいます。。。
どこかおかしな点がありますでしょうか?
まずは特定の情報のみを抜き出して表示する方法を知りたいのです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLを作成してもタグしか表示さ...
-
dataファイルをxtxファイルにす...
-
ChatGPT excel
-
ray-mmdについて
-
MSFormsとは何ですか?
-
ヤフー知恵袋みたいなサイトを...
-
Windowsで見かけるxmlファイル...
-
reaper音声ファイルについて
-
スマホのスプレッドシートでセ...
-
XMLサイトマップの登録方法がわ...
-
タモリさんを信じられますか?
-
自分のHTMLサイトでRSSを読み込...
-
ゲーミングPCに入っているAlris...
-
【BAT(バッチ)ファイル】Web...
-
XMLとは何ですか?
-
特殊文字の検索方法
-
フォルダー内検索
-
公文書のxmlファイルの開き方が...
-
Webページに関するさまざまな情...
-
head要素
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASP.NETでツリービューを作成し...
-
head要素
-
Webページに関するさまざまな情...
-
element of surprise
-
XMLウインドウ表示時のエラー
-
使用しない要素を無視するには...
-
2つの行動の違い
-
XMLはなぜ普及したのか?
-
XMLSchemaの記述法で質問です。
-
getElementsByNameの要素数が取...
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
東芝のDynabookなのですがアン...
-
XMLで要素が記述された順番に意...
-
XML、XSLTの適応エラー(IEから...
-
C#でTreeViewのCheckBoxのサイ...
-
xmlファイルが上手にHTMLに変換...
-
昔Winnyってありましたけど、あ...
-
バッチファイルでテキストファ...
おすすめ情報