当前位置: 首页 > 知识库问答 >
问题:

document()函数和包含%

陆星文
2023-03-14

我正在努力使用处理文件列表的XSL。对于大多数文件,该函数工作正常,但当文件名包含%符号时,该函数会崩溃。

这是我的XSLT:

   <xsl:template match="file">
     <xsl:variable name="sourcedoc" select="concat('file:///', text())"/>
     <madcapfile>
        <xsl:attribute name="filename"><xsl:value-of select="text()"/></xsl:attribute>
        <xsl:apply-templates select="document($sourcedoc)"/>
     </madcapfile>
   </xsl:template>

以及我的XML和文件列表:

<file>the 7% solution.xml</file>

在Saxon中处理时,它抱怨找不到文件“the 7olution.xml”

XLST将其指定为输出:

<xsl:output method="xml"  escape-uri-attributes="no" />

由于escape uri attributes=“no”,uri在转换后的XML中正确显示。我还没有找到一个在document()上工作的等效函数。如何确保document()将%视为文字,而不是转换它?

共有2个答案

强宾白
2023-03-14

我再看一遍,我想如果您的输入包含文件名而不是URI,尤其是如果文件名具有任意风格,那么处理它们的最佳方法可能是使用EXPath文件模块。也就是说:

parse-xml(file:read-text($filename))

或者

doc(file:path-to-uri($filename))

在一般情况下,将文件名转换为URI的逻辑相当复杂,肯定比将文件://粘贴在前面更复杂,EXPath文件模块试图解决这个问题,而标准函数库却没有。

郤玉书
2023-03-14

尝试<代码>

 类似资料:
  • 7.13. 函数文本和闭包 处理函数(handler)中捕捉错误是一些类似的重复代码。如果我们想将捕捉错误的代码封装成一个函数,应该怎么做?GO的函数文本提供了强大的抽象能力,可以帮我们做到这点。 首先,我们重写每个处理函数的定义,让它们接受标题字符串: 定义一个封装函数,接受上面定义的函数类型,返回http.HandlerFunc(可以传送给函数http.HandleFunc)。 func

  • 我不是一个JavaScript/jQuery编码器,不确定我要做的事情是否可能。 我有一个HTML/PHP/Ajax表单,它在用户填写时更新了sql数据库。当他们填写表单时,JavaScript/jQuery会运行一个进度条,该进度条会随着用户在输入中键入内容而更新。函数的开始如下所示: 这个很管用。我的问题是重新加载页面的时候。我的代码是从数据库中提取sql数据来填充页面上每一个有值的输入的值,

  • 闭包(closure)在 Rust 中也称为 lambda,是一类捕获封闭环境的函数。例如,一个可以捕获 x 变量的闭包如下: |val| val + x 它们的语法和能力使它们在临时(on the fly)使用相当方便。调用一个闭包和调用一个函数完全相同。然而,输入和返回类型两者都可以自动推导,且输入变量名必须指明。 其他的特点包括: 使用 || 替代 () 将输入变量括起来。 区块定界符({}

  • 问题内容: 我正在使用jQuery在UpdatePanel中的元素上附加一些鼠标悬停效果。事件绑定在中。例如: 当然,这在第一次加载页面时效果很好,但是当UpdatePanel执行部分页面更新时,它不会运行,并且鼠标悬停效果在UpdatePanel内部不再起作用。 不仅在首页加载时,而且在每次UpdatePanel触发部分页面更新时,建议在jQuery中进行接线的推荐方法是什么?我应该使用ASP.

  • 我通过批处理文件给Saxon(9.6 HE)打电话: 命令

  • 本文向大家介绍浅谈PHP匿名函数和闭包,包括了浅谈PHP匿名函数和闭包的使用技巧和注意事项,需要的朋友参考一下 概述 闭包和匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。 匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。不过匿名函数仍然是函数,因此可以调用,还可以传入参数,适合作为函数或方法的回调。 闭包是指在创建