我正在尝试从XML获取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)">
我收到了一个错误 表达式不返回DOM节点。 - &gt; translate($ xpath1,$ uppercase,$ smallcase)&lt; -
任何帮助都会很棒。
答案 0 :(得分:0)
您无法以这种方式将XPath表达式作为字符串进行操作。 (好吧,如果你真的需要,有些产品有xx:evaluate()扩展来启用它。)
相反,你需要做类似
的事情<xsl:for-each select="document(...)/root/url
[contains(translate(loc, $uppercase, $lowercase)),
translate($fldr, $uppercase, $lowercase))]"/>