gpt4 book ai didi

xml - XPath - 从字符串中提取数值

转载 作者:数据小太阳 更新时间:2023-10-29 02:14:43 24 4
gpt4 key购买 nike

<Description>this is my value 822880494 this is my value</Description>

我对 xpath、xml 和 stylevision 很陌生,所以这可能是一个基本问题。

我正在使用 stylevision 2010 和 xpath 为模式创建 sps/xslt。

在上面的节点中,您可以看到节点内有一个数值,我想提取该值并将其转换为我的 pdf/html 中的链接。问题是我似乎无法提取它。子字符串不是一个选项,因为值的长度和其中数值的位置各不相同。

有些人可能会认为模式组成不当,数值应该在单独的节点/属性中/...我对此无能为力,因为该模式是由另一家公司提供的。

提前致谢!

最佳答案

使用这个简单的 XPath 1.0 表达式:

translate(.,translate(., '0123456789', ''), '')

这是一个完整的 XSLT 1.0 解决方案:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/*">
<xsl:value-of select=
"translate(.,translate(., '0123456789', ''), '')"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时:

<Description>this is my value 822880494 this is my value</Description>

产生了想要的、正确的结果:

822880494

解释:

这被称为 双重翻译方法,由 Michael Kay 首次提出。它包含对 translate() 函数的两次嵌套调用:

  1. 内部 translate()。这将生成字符串的所有字符,数字除外。

  2. 外层 translate()。这将从字符串中删除由内部 translate() 生成的所有字符。剩下的只是想要的字符(数字)。

关于xml - XPath - 从字符串中提取数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8891008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com