- 追加された行はこの色です。
- 削除された行はこの色です。
*xsltサンプル [#z7a94f5d]
xsltサンプルを徒然。
書かないと忘れる、、、
対象はこのサイトのrssです。
ちなみに、xsltにかける対象はこのサイトの[[rss:http://www.hiihah.info/index.php?cmd=rss&ver=1.0]]です。
**はまりどころ [#h901243f]
xslt使うときにいつもはまるところ
***namespace [#e3f38670]
xslt1.0系はデフォルトネームスペースが効かない。
従って、rssも明示してxpathで指定する必要あり。
例えば、うちのサイトのRSSだと、namespaceは以下のものを使っている。※rssを取得した際にrdf:RDFの中で指定されているxmlnsを参照すること
-rss(デフォルトネームスペース)
-dc
-rdf
これらはについて、xsltの宣言部で
-namespaceを同様に宣言する必要あり。
-デフォルトであるrssについては接頭辞をつけて宣言する必要あり。
すると、こんな感じになります。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:rss="http://purl.org/rss/1.0/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<xsl:template match="/">
<html>
<p>xsltサンプル</p>
<lu>
<xsl:for-each select="/rdf:RDF/rss:item">
<li><xsl:value-of select="rss:title/text()" /></li>
</xsl:for-each>
</lu>
</html>
</xsl:template>
</xsl:stylesheet>
出力は以下の通り。※XmlNotePadでのイメージ
&ref("xsltsample1.png");
*** 参考サイト [#t4398af6]
-http://www.ibm.com/developerworks/jp/xml/library/x-xsltmistakes/