3

私の'destinationURLLookUp.xml'ファイルが次の構造を持っていると考えてください

           <?xml version="1.0" encoding="UTF-8"?>
               <destinationURLs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
              <destinationURL name="Default Page" value="/abc/ab"/>
                     <destinationURL name="Home Page" value="/abc/ac"/>

                </destinationURLs>

次のXSLTコードを使用してこのファイルをXSLTにロードし、処理している「値」に対応する「名前」属性を取得する必要があります。

            <destinationURL> 

鬼ごっこ。

私が試したXSLTスニペット

        <xsl:variable name="prop" select="document('destinationURLLookUp.xml')"/>
                <xsl:variable name="rep2" select="$prop/destinationURLs/destinationURL[@value=@url]/@name"/>
                <xsl:value-of select="$rep2" />

ここで、@ urlは、取得するURL値であり、の「値」属性と一致します。

               <destinationURL> 

鬼ごっこ。出力を取得できません。対応する「値」の「名前」属性にアクセスするための相対xpathを取得できますか?

上記の$prop/ destinationURLs / destinationURL [@ value = @ url] /@nameで試してみました。

4

2 に答える 2

1

ノードにはurlの属性がないため、@ value =@urlは機能しません。

現在の行から使用しているURLがある場合は、最初に変数に入れてください。

<xsl:variable name="url" select="@url"/>
<xsl:variable name="rep2" select="$prop/destinationURLs/destinationURL[@value=$url]/@name"/>
于 2012-06-18T09:49:37.587 に答える
1

属性のテンプレートの現在のコンテンツを明示的に指定することが不足していると思います@url。正しいXPathは、命令が配置されているテンプレートによって異なります。

私はこのようなことについて話している:

<xsl:variable name="rep2" 
 select="$prop/destinationURLs/destinationURL[@value=current()/@url]/@name"/>

注意してくださいcurrent()/@url

于 2012-06-18T11:22:01.940 に答える