加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 在XPath中将字符串拆分为两个

发布时间:2020-12-16 23:15:46 所属栏目:百科 来源:网络整理
导读:我的 XML源代码如下: span class="char-style-override-6"Breast Problems (Female and Male) 511/span 我有一个模板匹配它 xsl:template match="span" mode="table" 我现在的困难是在这个模板匹配中,我需要创建两个标签,第一个将包含字符串“Breast Proble
我的 XML源代码如下:

<span class="char-style-override-6">Breast Problems (Female and Male)   511</span>

我有一个模板匹配它

<xsl:template match="span" mode="table">

我现在的困难是在这个模板匹配中,我需要创建两个标签,第一个将包含字符串“Breast Problems(Female and Male)”,而第二个只包含页码“511”.

我只是不知道如何做这个子串分割,以区分文本和数值.

解决方法

XSLT 2.0解决方案:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
        <output>
            <xsl:apply-templates mode="table"/>
        </output>
    </xsl:template>
    <xsl:template match="span" mode="table">
        <xsl:variable name="split" select="replace(.,'.*s(d+)$','$1')"/>
        <string><xsl:value-of select="normalize-space(substring-before(.,$split))"/></string>
        <number><xsl:value-of select="$split" /></number>
    </xsl:template>
</xsl:stylesheet>

应用于

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <span class="char-style-override-6">Breast Problems (Female and Male)   511</span>
</root>

<?xml version="1.0" encoding="UTF-8"?>
<output>
    <string>Breast Problems (Female and Male)</string>
    <number>511</number>
</output>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读