0

EXSLTの使用を開始しようとしています。

これが私のベース XSL です。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:exsl="http://exslt.org/common"
                extension-element-prefixes="exsl"
                version="1.0">
<xsl:import href="exsl.xsl" />                

    <xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" indent="yes"/>
    <xsl:variable name="main" select="/data"/>

    <xsl:template match="/data">

        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
        HTML STARTS
            <br/>
            <xsl:variable name="metadata" select="document('metadata.xml')"/>
            Straight Value of<br/>
            <xsl:value-of select="$metadata"/>          
            Node-set value of <br/>
            <xsl:value-of select="exsl:node-set($metadata)/email"/>


            <xsl:for-each select="$metadata/Data">
                <xsl:variable name="node" select="."/>
                <xsl:value-of select="$node"/>
                Test<br/>


            </xsl:for-each>

        </html>
    </xsl:template>
</xsl:stylesheet>

EXSLT Web サイトから共通モジュールをダウンロードしました。( http://www.exslt.org/exsl/index.html )

このモジュールの構造は次のとおりです。

base.css
exsl.xsl
/functions/node-set/base.css
/functions/node-set/exsl.node-set.xml
/functions/object-type/base.css
/functions/object-type/exsl.object-type.xml
/elements/document/base.css
/elements/document/exsl.document.xml
(+ 各フォルダー内のいくつかの html)。

これを抽出してベース XSL と同じディレクトリに配置し、exsl.xsl とベース xsl が同じフォルダにあるようにします。

exsl.xsl は言う

<?xml version="1.0" encoding="utf-8"?>
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/exsl" version="1.1" extension-element-prefixes="exsl" exsl:doc="http://www.exslt.org/exsl">
   <import href="node-set/exsl.node-set.xsl"/>
   <import href="object-type/exsl.object-type.xsl"/>
</stylesheet>

最初に関数フォルダーを指していないため、これ自体が間違っているようです。ただし、機能を追加しても:

   <import href="functions/node-set/exsl.node-set.xsl"/>
   <import href="functions/object-type/exsl.object-type.xsl"/>

XMLSpy で 'Local file not found' エラーが発生します。

これを開始する方法はありますか?

4

1 に答える 1

0

上記のように:

EXSLT 名前空間の参照はすべてです。それらは含まれています。

持っている場合<xsl:variable name="metadata" select="document('metadata.xml')"/>は、ドキュメント関数がノードセットを提供するため、 exsl:node-set 関数を使用する必要はまったくありません。

于 2015-12-02T05:12:19.827 に答える