xslt:将字符转换为其十六进制 Unicode 表示形式
这是我的输入 html (xhtml)
<SPAN style="font-family: wingdings"></SPAN>
我想创建一个 xml 节点,如下所示
<w:sym w:font="wingdings" w:char="F0D8"/>
如何从 html 获取字符 Unicode 十六进制值 (F0D8):为此建议一个模板。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我所做的事情与 Michael Kay 在 他的答案:)无论如何,这是我的
代码
int-to-hex
函数由 提供伊夫·福克尔。输出是:我不知道如何使用 XSLT 1.0 来做到这一点。
I was doing exactly the same thing as Michael Kay suggested in his answer :) Anyway, here is my code
The
int-to-hex
function is courtesy of Yves Forkl. The output is:I don't know how to do this using XSLT 1.0.
在 XSLT 2.0 中,您可以使用
string-to-codepoints()
函数获取字符的数值。您必须自己编写一个函数将其转换为十六进制,但这并不困难。In XSLT 2.0 you can get the numeric value of the character using the
string-to-codepoints()
function. You'll have to write a function to convert it to hex yourself, but that's not difficult.@MarcoS 的函数中存在一个错误:应将
if ($in gt 16)
改为if ($in ge 16)
(大于或等于)。生成了错误的十六进制值,例如数字 259。完整的函数应如下所示:
There is one error in @MarcoS's function: instead of
if ($in gt 16)
should beif ($in ge 16)
(greater then or equal). Wrong hexadecimal values were generated for example for number 259.The full function should looks like this: