首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Schematron快速修复问题

Schematron快速修复问题
EN

Stack Overflow用户
提问于 2019-10-07 05:06:33
回答 1查看 90关注 0票数 1

使用quickfix将文本'abc‘替换为'-abc’后,我仍然可以选择将文本'abc‘替换为'-abc’。

XML输入:

代码语言:javascript
复制
  <data>
     <text>10abc and 20-abc</text>
     <text>30abc test 40abc and 15-abc </text>
  </data>

schematron代码:

代码语言:javascript
复制
<sch:pattern>
        <sch:rule context="//text()">
<sch:report
                test="contains(.,'abc ')"sqf:fix="group-fix">abc not allowed without hypen</sch:report>
<sqf:group id="group-fix">
 <sqf:fix id="abc-fix" use-when="contains(current(),'abc')">
                    <sqf:description>
                        <sqf:title>replace</sqf:title>
                    </sqf:description>
                    <sqf:replace>
                        <xsl:analyze-string select="." regex="(\d+)abc\s">
                            <xsl:matching-substring><xsl:value-of select="regex-group(1)"/><xsl:value-of select="'-abc'"/><xsl:text>&#xA0;</xsl:text></xsl:matching-substring>
                            <xsl:non-matching-substring><xsl:value-of select="."/></xsl:non-matching-substring>
                        </xsl:analyze-string>
                    </sqf:replace>
                </sqf:fix>
    </sqf:group>
        </sch:rule>
    </sch:pattern>

为什么即使在替换完成之后,我仍然可以选择将'abc‘替换为'-abc’?有人能告诉我代码出了什么问题吗?提前感谢

EN

回答 1

Stack Overflow用户

发布于 2019-10-07 15:12:23

你可以试试这个

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    exclude-result-prefixes="xs"
    version="2.0">
    <xsl:output method="xml" omit-xml-declaration="no"/>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="//text()">
        <xsl:value-of select="replace(., '((\d+)(abc))', '$2-$3')"/>
    </xsl:template>
</xsl:stylesheet>

演示 https://xsltfiddle.liberty-development.net/94AbWAS/1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58261223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档