- PR -

XSLでXPathのfn:関数を使うために

1
投稿者投稿内容
Thomas
会議室デビュー日: 2008/03/24
投稿数: 2
投稿日時: 2008-03-24 16:07
こんにちは、
お世話になります。
XSLのスタイルシートでhttp://www.w3schools.com/xpath/xpath_functions.asp#contextにあるfn:関数を使おうとしていますけど全然できません。私が使っているXMLとXSLの例ファイルを見せます。
XMLファイル:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<sales></sales>

XSLファイル:

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" version="1.0">
<xsl:template match="/">
TEST :
<xsl:value-of select='string(34)'/>
<br/>
TEST :
<xsl:value-of select='fn:current-dateTime()'/>
<br/>
</xsl:template>
</xsl:stylesheet>

string(34)は大丈夫けどfn:current-dateTime()は行けません。
Firefox2.0とInternet ExplorerとXML Notepad 2007でしてみましたけどいつも「プレフィックス 'http://www.w3.org/2003/xpath-functions' を実装するスクリプトまたは外部オブジェクトがありません」のようなエラーが出て来ます。」http://www.w3.org/2003/xpath-functionsのネームスペースを間違って使っていると思いますけど正しい使い方がしりません。一番必要な関数はfn:current-dateTime()けど他のfn:関数も行けません。
正しいfn:関数の使い方はなんでしょうか?

ありがとうございます。
Thomas
azuqui
会議室デビュー日: 2008/03/26
投稿数: 1
投稿日時: 2008-03-26 14:21
XSLT 1.0 で使用できる関数は XPath 1.0 で定義されているものに限ります。
fn:current-dateTime は XPath 2.0 の関数なので XSLT 2.0 にすれば使用できると思います。

XSLT 2.0 の処理系はまだ少ないですが、SAXON などを試されてはどうでしょうか。
http://saxon.sourceforge.net/
Thomas
会議室デビュー日: 2008/03/24
投稿数: 2
投稿日時: 2008-03-27 11:12
ご返事誠にありがとうございます。
確かにそうです。インターネットで調べてXSLT2.0をできるソフトを見つけました.AltovaXML, GestaltとSaxonはできますけどXSLT2のできるインターネットブラウザーは残念ですがまだないんです。

ありがとうございました。
Thomas
1

スキルアップ/キャリアアップ(JOB@IT)