XSLT xmlのスタイルシートを使用するちょっとしたコツ
サーバから返されるxmlの値をブラウザで見たかったので、xmlのスタイルシートであるxlstを初めて編集してみた。その時に引っ掛かった何点かメモ書きに残しておきたいと思います。
1.xmlのタグは消えたのに、意図したとおりの表示となっていない
原因:ルートとなる最初のタグに属性が書かれていたため
対策:ルートとなる最初のタグから属性を削除
2.階層的にデータを表現
マッチング属性の後、階層的に再度、apply-templatesを使用する
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="xxxxx">
<html><body><xxxxx>
<xsl:apply-templates/>
</xxxxx></body></html>
</xsl:template>
3.同じタグ名で属性が異なる値の抽出
例えば、複数の<hoge>というタグから"yahoo"という属性の値のみ抽出といった場合
xmlファイル
<hoge name="yahoo">
xslファイル
<xsl:template match="hoge[@name='yahoo']">
<p><xsl:value-of select="." /></p>
</xsl:template>
<xsl:template match="hoge[@name!='yahoo']">
<p></p>
</xsl:template>
matchのイコール後は、Xpath形式ですタグ名[@属性名=属性値です。
4行目から6行目でyahoo以外の属性値は表示しないというようなことをやっておかないと、表示されてしまいます。
確認したのはxslのバージョン1.0なので、新しいバージョンでは変わっているかもしれません。
2019.03.31追記
使用しているブラウザは、Firefoxです。ちなみにChromeだと何も表示されません。Edgeの場合は、明示的にキャラクタセットを定義していても、漢字の部分が文字化けしている。
p.s.
Window→Ubuntu移行ですが、移行作業は2,3割済んだところでしょうか。
ざっくり、今まで実行したことを列挙します。
・Ubuntuのアップ-デート
・VNC導入
・perl のモジュールのインストール
・Android Studioのインストール
・Dropboxの導入
・VirtualBoxの導入
・ゲストOSにWindows10 64bitのインストール
Dropboxは、gizmodoさんの記事にあるように3デバイスで制限されていました。
Webからログインして、「設定」「セキュリティ」で過去のデバイスまで含めて、リンク解除可能です。(過去のデバイスがどうなるか、懸念していましたが、大丈夫でした)
ちなみに9年ぐらい前から10個以上のデバイスが表示されていました。
参考リンク