XSLT 1.0 杂乱清理

2024-02-13

我正在以反向字体(黑色背景,白色文本)打印一行,分布在收据带的宽度上(41 个字符)。我有功能代码,但我想知道是否有更好的方法来做到这一点:

这是我现有的代码:

<text lang="en" align="center" smooth="true" reverse="1"><xsl:value-of select="substring($spaces21, 1, (string-length($spaces21) - ((string-length(SavingsSegment) div 2) + string-length(SavingsSegment) mod 2)))"/>
  <xsl:value-of select="SavingsSegment"/><xsl:value-of select="substring($spaces21, 1, (string-length($spaces21) - ((string-length(SavingsSegment) div 2) + string-length(SavingsSegment) mod 2)))"/>
</text>

此代码生成此 XML:

 <text lang="en" align="center" smooth="true" reverse="1" xmlns="">             YOU SAVED $2.00             </text>

澄清:spaces21 是一个包含 21 个空格的文本字段(如果这还不是很明显的话)。

无论我输入什么值,xml 都会正确打印($1,275,824.00 和 $2.00 一样有效)。

我的问题是,这是有史以来最笨拙的拼凑。有没有办法以更干净的方式做到这一点?

Thanks!


如果您正在使用libxslt or Xalan或其他支持 EXSLT 的处理器字符串:对齐() http://exslt.org/str/functions/align/index.html and 字符串:填充() http://exslt.org/str/functions/padding/index.html扩展功能,那么你可以简单地做:

<text>
    <xsl:value-of select="str:align(SavingsSegment, str:padding(41, ' '), 'center')"/>
</text> 

要在纯 XSLT 1.0 中做到这一点,我相信这会更优雅:

<xsl:variable name="spaces21" select="'                     '"/>
<xsl:variable name="pad" select="(41 - string-length(SavingsSegment)) div 2"/>
<text>
    <xsl:value-of select="substring($spaces21, 1, floor($pad))"/>
    <xsl:value-of select="SavingsSegment"/>
    <xsl:value-of select="substring($spaces21, 1, ceiling($pad))"/>
</text> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT 1.0 杂乱清理 的相关文章

随机推荐

  • 碰撞时阻止移动

    我正在 XNA 中开发 2d 游戏 目前正在上物理课 我当前的任务是在一个物体与另一个物体碰撞时阻止它 我让我的游戏在两个物体发生碰撞时调用此函数 public void BlockMovement gameObject target yo
  • 单击日历时使用 fullcalendar 创建事件(rails)

    当用户单击日历的任何部分时 如何创建事件 然后将其作为新事件存储在数据库中 我知道你必须使用 select function start end allDay 来获取 开始 和 结束 时间 但是当我得到这些数据后 如何将其传递到数据库呢 T
  • Rails 控制台添加 nil 而不是值

    目前 当尝试通过 Rails 控制台或种子数据将新用户添加到我的用户表时 一切都为零 在我的种子文件中 我正在运行 u1 User create from email gt email protected cdn cgi l email p
  • 捕获正则表达式匹配以从查找表中进行替换

    我正在 PowerShell 中编写一个语言解释器 该语言是 PILOT 对于那些可能感兴趣的人 并且我已经达到了实现变量替换的地步 变量名由以下任一组成 or a 后跟该集中最多十个字符 A Za z0 9 但是 如果变量名带有前缀 它应
  • Codeigniter 中的注销功能

    我开始在我的项目中使用 codeigniter 我的网站有用户身份验证系统 我看过 nettuts 的视频以获取登录信息 我很困惑为什么注销不能正常工作 我的登录控制器中有以下注销功能 function logout this gt ses
  • Python 在 Windows 8.1 64 位上错误地检测到 32 位系统

    PS C Users gt C Python27 python exe Python 2 7 15 v2 7 15 ca079a3ea3 Apr 30 2018 16 30 26 MSC v 1500 64 bit AMD64 on win
  • 单表内SQL时间差

    我有一个包含用户登录数据的 MySQL 表 user date type 1 2011 01 05 08 00 00 login 1 2011 01 06 09 00 00 login 1 2011 01 06 10 00 00 logou
  • RankNTypes 与类型别名混淆[重复]

    这个问题在这里已经有答案了 我试图了解类型约束如何与类型别名一起使用 首先 假设我有下一个类型别名 type NumList a Num a gt a 我有下一个功能 addFirst a gt NumList a gt NumList a
  • 从浏览器捕获系统声音

    我正在尝试构建一个 Web 应用程序 从 webrtc 调用捕获本地和远程音频 但我无法录制远程音频 使用 recordRTC 我想知道是否可以以某种方式捕获系统声音 有没有办法从浏览器捕获系统声音 不仅仅是麦克风 也许是一个扩展 在 Ch
  • PHP中如何计算对角线差?

    我有一个N N矩阵 现在我想知道这个矩阵的对角线差异 这个解决方案的最佳方法是什么 我正在尝试使用给定的方法 就这样3 3矩阵说它是 11 15 85 66 72 21 14 21 47 对角线简单公式为 firstD 11 72 47 1
  • VC++ 2010 include/lib 路径

    VC2010 Express 中是否有地方可以为所有项目设置头文件和库路径 当我设置它们时 它们似乎只适用于单个项目 例如 我每次启动新项目时都必须设置它们 我认为你可以为此设置环境变量 INCLUDE 和 LIBPATH 不知道如何从 G
  • 使用 cordova for android 构建会创建错误的版本代码

    运行命令cordova build release android生成版本代码为 70 的 apk 在 config xml 文件中 对于小部件我将其设置为
  • 如何检测 Firefox 中的浏览器关闭事件?

    如何在 Firefox 浏览器中检测浏览器关闭事件 我想在服务器端进行一些清理过程 并维护上次注销时间 为了实现这一点 需要在用户单击注销或关闭浏览器时触发 ajax 调用 对于 IE 以下代码有效 if window event clie
  • 带有 的多行

    代码笔 https codesandbox io s 94lw648lmo fontsize 14 https codesandbox io s 94lw648lmo fontsize 14 我一直在使用 Material ui 和 Rea
  • 如何删除目录中X个文件

    要获取目录中的 X 个文件 我可以这样做 ls U head 40000 那么我该如何删除这 40 000 个文件呢 例如 类似 rm rf ls U head 40000 您需要的工具是xargs 它将标准输入转换为您指定的命令的参数 输
  • 如何为 EF5 导航属性指定列名称

    我首先使用 EF5 代码来生成数据库架构 但我的新导航属性在表中以不合需要的方式命名 这是我正在使用的模型 public class User Key public long UserId get set public virtual IC
  • CSS - 使用滤镜为黑白 PNG 图像添加颜色

    CSS 中是否可以使用滤镜为黑白图像添加颜色 我说的是像 Photoshop 中那样使用过滤器 更好的例子是 Microsoft PowerPoint 中的过滤器 我想做的是 我有一个黑色图标的图像文件 我想为其添加一个过滤器 以便图像中的
  • 具有实体框架的 WCF DataService:TimeSpan 支持

    我正在尝试在公开许多 System TimeSpan 属性的实体框架对象上下文上创建 WCF 数据服务 但是 当我尝试访问该服务时 出现以下错误 DepotRoute 类型上的属性 ScheduledDepartureTime 属于 Tim
  • 如何用科学记数法格式化数字

    所以基本上我有这个返回的函数 3 00000000000E000 function lang extended begin wynik 0 counter 1 temp 1 input 2 for i 1 to 4 do begin for
  • XSLT 1.0 杂乱清理

    我正在以反向字体 黑色背景 白色文本 打印一行 分布在收据带的宽度上 41 个字符 我有功能代码 但我想知道是否有更好的方法来做到这一点 这是我现有的代码