xsltサンプル:namespace の変更点
Top / xsltサンプル:namespace
- 追加された行はこの色です。
- 削除された行はこの色です。
- xsltサンプル:namespace へ行く。
- xsltサンプル:namespace の差分を削除
*xsltサンプル [#z7a94f5d] *xsltサンプル:namespace [#z7a94f5d] xsltサンプルを徒然。 書かないと忘れる、、、 ちなみに、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/