2012-11-06 53 views
0

我試圖從XML獲取URL的列表。這些URL是混合大小寫的。我已經嘗試了下面的代碼(不幸的是xPath 1.0)。在xPath中區分大小寫

<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)"> 

而且出現錯誤 表達式不返回DOM節點。 - > translate($ xpath1,$ uppercase,$ smallcase)< -

任何幫助都會很棒。

回答

0

您不能以這種方式將XPath表達式作爲字符串操作。 (好吧,如果你真的需要,一些產品有一個xx:evaluate()擴展來啓用它)。

相反,你需要做的是這樣

<xsl:for-each select="document(...)/root/url 
     [contains(translate(loc, $uppercase, $lowercase)), 
       translate($fldr, $uppercase, $lowercase))]"/> 
+0

我用 '< - XSL:變量名= 「小寫」> ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ ' 這沒有奏效。但是這段代碼將會找到fldr的一個狀態。 '' – DigitalDragon