0

XML から URL のリストを取得しようとしています。URL は大文字と小文字が混在しています。以下のコードを試しました(残念ながらxPath 1.0)。

<xsl:variable name="smallcase">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="uppercase">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="xpath1">document($fullSitemapDoc)/root/url[contains(loc,$fldr)]</xsl:variable>
<xsl:for-each select="translate($xpath1, $uppercase, $smallcase)">

そして、エラー Expression does not return a DOM node が表示されます。-->translate($xpath1, $uppercase, $smallcase)<--

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

0

この方法では、XPath 式を文字列として操作することはできません。(本当に必要な場合は、xx:evaluate() 拡張機能を使用して有効にする製品もあります)。

代わりに、次のようなことをする必要があります

<xsl:for-each select="document(...)/root/url
      [contains(translate(loc, $uppercase, $lowercase)), 
                translate($fldr, $uppercase, $lowercase))]"/>
于 2012-11-06T13:56:30.580 に答える