0

XSL変換中にの値を取得し、iWantToGetThis.jpgそれを中に入れようとしています。<img>これが私のxmlが構造である方法です:

<article>
    <info>
        <mediaobject>
            <imageobject>
                <imagedata fileref='iWantToGetThis.jpg'>

これが私がXSLのために思いついたものです:

<xsl:template name="user.header.content">
    <xsl:stylesheet xmlns:d='http://docbook.org/ns/docbook'>
        <img><xsl:attribute name="src">../icons/<xsl:value-of select='ancestor-or-self::d:article/info/mediaobject/imageobject/imagedata/@fileref' /></xsl:attribute></img>
    </xsl:stylesheet>
</xsl:template>

fileref画像が出力に追加されていますが、src属性が "../icons/"に設定されているため、XMLで属性が見つからないと想定しています。これは私には完全に有効に見えるので、何が欠けているのかわかりません。

4

1 に答える 1

0

有効なXSLTドキュメントのようには見えないため、どのようにして何かを取り戻すことができるかわかりません(「キーワードxsl:stylesheetにはimgが含まれていない可能性があります」というエラーが予想されます)。

ただし、コードの一部を表示しているだけの可能性があります。この場合、 xpath内のすべての要素に名前空間を指定する必要があるのに、 article要素の名前空間のみを指定していることが問題である可能性があります。これを試して

<xsl:value-of 
   select="ancestor-or-self::d:article/d:info/d:mediaobject/d:imageobject/d:imagedata/@fileref"/>

もう1つの考えられる問題は、「祖先または自己」のxpath軸を使用して属性を検索していることが原因である可能性があります。これは、現在のコンテキストがすでにarticle要素またはその子孫の1つにある場合にのみ機能します。

ちなみに、ここで属性値テンプレートを使用すると、コードを簡略化できます。

<img src="../icons/{ancestor-or-self::d:article/d:info/d:mediaobject/d:imageobject/d:imagedata/@fileref}" />
于 2012-06-01T16:35:10.550 に答える