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

而且我收到一个错误表达式不返回 DOM 节点。-->翻译($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 回答