【发布时间】:2018-11-01 18:02:49
【问题描述】:
我试图在进行 XSLT 翻译时过滤掉问题字符(引号和斜杠),但实际上无法删除它们。我在这里尝试了几种建议的解决方案,但均未成功:
Replace special characters in XSLT
XSL: replace single and double quotes with ' and "
理想情况下,我希望将字符替换为某种标记词,例如 quotes 或 slash,但此时我只需将它们去掉就可以了暂时。
我只在几个选择上运行它,所以应该不会那么难。我不确定出了什么问题。
<xsl:value-of select="ns3:stepTitle"/>
编辑:
需要使用 XML 1.0。
XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*/text()">
<xsl:value-of select="translate(., '\"', '*quote*')"/>
</xsl:template>
</xsl:stylesheet>
XML:
<test>
I need to remove "quotes" and slashes /\ from here.
</test>
结果是:
<?xml version="1.0" encoding="UTF-16"?>
<test>
I need to remove qquotesq and slashes /* from here.
</test>
【问题讨论】:
-
您有minimal reproducible example 来显示您的确切问题吗?
-
如果您不告诉我们您在做什么,我们当然无法判断您做错了什么。如果您向我们展示您的代码,我们可以告诉您哪里出错了。如果您向我们展示您的输入和所需的输出,我们可以建议如何编写代码。既没有输入,也没有输出,也没有代码,我们无能为力。
-
另外,我们需要知道您是否可以使用 XSLT 2.0(或 3.0),因为这使大多数事情变得容易得多。
-
你是对的。我对此感到抱歉。我需要为此使用 XML 1.0。请参阅对问题的编辑以进行澄清。