Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特殊字符不会通过XLST从XML中删除_Xml_Xslt_Transform_Special Characters - Fatal编程技术网

特殊字符不会通过XLST从XML中删除

特殊字符不会通过XLST从XML中删除,xml,xslt,transform,special-characters,Xml,Xslt,Transform,Special Characters,我似乎无法从XML中删除某些特殊字符。它们是省略号、双引号和单引号。我正在转义特殊字符,列表中也有句点,但它不会删除。除了这几项之外,其他一切都会删除 以下是XLST: <?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/XMLSche

我似乎无法从XML中删除某些特殊字符。它们是省略号、双引号和单引号。我正在转义特殊字符,列表中也有句点,但它不会删除。除了这几项之外,其他一切都会删除

以下是XLST:

<?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:template match="/"> 
            <soa:Label identifier="6f109b37-d9d1-4ff3-8e16-7ecffa08be1f" name="To Avid Transcript" description="" instance="b885c5f1-6307-42ff-a79c-42d61bc4464e" signature="00000000-0000-0000-0000-000000000000" xmlns:soa="urn:telestream.net:soa:core">
                <soa:Parameter type="string" identifier="32bd5202-f003-4da3-8d1f-2b5a5d324af9" bindable="True" name="Transcript" enabled="true" disableable="false" optionseditable="false">
                    <xsl:variable name = "apos">'</xsl:variable>
                    <xsl:value-of select="translate(Transcript, '♪!@#&amp;&quot;&lt;&gt;$%^*()[]{}?/.,:;™-', '')"/>
                </soa:Parameter>
            </soa:Label>
        </xsl:template>         

    </xsl:stylesheet>

'
您的输入包含“智能报价”。要删除这些,请使用:

translate(Transcript, '&#8216;&#8217;&#8220;&#8221;', '')

我无法重现您关于该期间的问题。

字符
”和
不在您的
翻译()中。如果你加上它们,它们应该会起作用。我看不出你的例子中有省略;只有三个句号。据我所知,我有逃逸的特殊字符,如双引号是“,所以我不能使用”和“。我列出了一个句号,所以我不知道为什么它不删除这三个句号。正如Michael在他的回答中指出的,您在XML中没有使用quot或apos,而是使用了智能引号。太好了,这很有效。我刚刚找到了与上面列出的省略号相同的unicode,它也删除了它。@RyanJensen很好。请注意,数字字符参考仅用于方便和清晰。您也可以使用实际字符,例如
translate(Transcript),“,”,“)
<?xml version="1.0" encoding="utf-16"?>
<soa:Label identifier="6f109b37-d9d1-4ff3-8e16-7ecffa08be1f" name="To Avid Transcript" description="" instance="b885c5f1-6307-42ff-a79c-42d61bc4464e" signature="00000000-0000-0000-0000-000000000000" xmlns:soa="urn:telestream.net:soa:core">


145 JDY  Hi I’m John Doe executive vice president Right now you are tuning in to a very special Progra “Program Name” seeing in the world today...

</soa:Parameter>
</soa:Label>
translate(Transcript, '&#8216;&#8217;&#8220;&#8221;', '')