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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |