XSL/XSLT (558レス)
前次1-
抽出解除 レス栞

177
(4): 03/02/20 19:11 ID:ywFHezDA(1) AAS
名前空間接頭辞 foo と bar を使った xml 文書があります.
----------
<foo:root xmlns:foo="外部リンク:foo-namespace" xmlns:bar="外部リンク:bar-namespace">
 <bar:e1>this is <foo:e2>a</foo:e2> pen. </bar:e1>
</foo:root>
----------
これを以下の xslt に食わせて,
foo に属する要素を全て bar の要素に変換します.
----------
<xsl:stylesheet xmlns:xsl="外部リンク:www.w3.org"
 xmlns:foo="外部リンク:foo-namespace" xmlns:bar="外部リンク:bar-namespace" version="1.0">
<xsl:output indent="yes" omit-xml-declaration="yes" />
<xsl:template match="foo:root"><bar:root><xsl:apply-templates select="*" /></bar:root></xsl:template>
<xsl:template match="foo:e2"><bar:e2><xsl:value-of select="." /></bar:e2></xsl:template>
<xsl:template match="@*|node()"><xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy></xsl:template>
</xsl:stylesheet>
----------
すると,以下のような xml 文書 (多少整形してあります) が得られるのですが,
----------
<bar:root xmlns:bar="外部リンク:bar-namespace" xmlns:foo="外部リンク:foo-namespace">
 <bar:e1>this is <bar:e2>a</bar:e2> pen.</bar:e1>
</bar:root>
----------
結果として全く使われていない foo に対する宣言が文書に含まれてしまいます.
exclude-result-prefixes="foo" を指定しても,bar:e1 要素に宣言が現れるだけで意味がありませんでした.
これを取り除く (最適化?) することはできないのでしょうか.
いや,実害はないんですけど気持ち悪くて...
178: 177 03/02/20 19:13 ID:??? AAS
書き込むときに「改行が多い!!」って怒られちゃったので
改行削ったらソースが読みづらくなってしまいました……スマンコ
179
(1): 03/02/21 01:48 ID:??? AAS
>>177
で、変換は何で?
180
(1): 177 03/02/21 10:10 ID:??? AAS
>>179
えーと,「何で変換する必要があるの?」という意味でしょうか.

>>177で挙げた例は,現象が再現する最小限のソースでして
(もっと短くできるかもしれませんが),実際は置き換え以外にも色々やってるんです...
182: 177 03/02/23 21:47 ID:ORn8WdNQ(1) AAS
>>181
すいません,書き忘れました.
xalan-java 2.4.D1 です.
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.789s*