当前位置: 首页 > 知识库问答 >
问题:

使用XSLT转换函数或更好的方法删除单引号和双引号

袁晟
2023-03-14

我正在使用XSLT1.0和XML。我对这些主题是新手,但我一直在阅读并尝试如何将XSLT应用于XML。现在,我给出了一个需要从XML元素中筛选出无效字段的项目。java Transformer类用于在XML上应用XSLT。java代码类似于oracle教程中“编写XSLT转换”一节。我已经添加了下面的xml和xsl,并运行教程页面中描述的代码。我的目标是提取单引号和双引号以及以下字符#60;–^x6;

XML文件

<?xml version="1.0" encoding="UTF-8"?>
<Author>
    <Name>
        <FirstName>Ch#60;•^#x6;'""ris</FirstName>
        <LastName>Banville</LastName>
    </Name>
</Author>

XSL文件

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <body>
                 <xsl:variable name="invalid">#60;•^#x6;"'</xsl:variable>
                 <div>
                 <xsl:value-of select="translate(/Author/Name/FirstName,$invalid,'')" />
                 </div>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
  <body>
     <div>Chris</div>
   </body>

XSLT函数在创建“single”和“double”变量后如下所示。

<xsl:value-of select="translate(translate(/Author/Name/FirstName,$single,''),$double,'')" />

我仍然不确定使用我目前的任何暗示的利弊,或者即使它是执行这些任务的正确方法。

共有1个答案

翟源
2023-03-14

XPath1.0规范规定:

在表达式中,文本字符串由单引号或双引号分隔,单引号也用于分隔XML属性。为了避免XML处理器将表达式中的引号解释为终止属性值,可以将引号作为字符引用输入()。或者,如果XML属性用双引号分隔,则表达式可以使用单引号,反之亦然。

这意味着在只使用文本的单个表达式中,您可以通过以下方式移除双引号字符:

<xsl:value-of select="translate(input, '&quot;'')"/>
<xsl:value-of select='translate(input, "&apos;", "")'/>
 类似资料:
  • 本文向大家介绍js 单引号替换成双引号,双引号替换成单引号的实现方法,包括了js 单引号替换成双引号,双引号替换成单引号的实现方法的使用技巧和注意事项,需要的朋友参考一下 1.双引号替换成单引号 2.单引号替换成双引号 以上这篇js 单引号替换成双引号,双引号替换成单引号的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我有以下xslt可以将数据转换为JQuery接受的格式。但是,由于JSON在数据字符串中不接受双引号,因此我需要用转义序列\代替“ XML: 当前的XSLT: 电流输出: 所需的输出: 问题答案: 将此模板添加到您的代码中 : 然后更改 : 至 : 您的完整转换现在变为 : 当此转换应用于提供的XML文档时 : 产生想要的正确结果 :

  • 问题内容: 我有一个正在编写的脚本,用于将某些字段移至新的数据库,例如 但是如您所见,由于单引号和双引号,查询每次都会中断,是否有解决此问题的方法,例如herdok或类似的东西 问题答案: 为此而制作的。 PHP:mysql_real_escape_string

  • 我正在使用opencsv读取csv文件。有时csv文件中包含单引号或双引号。如何读取它们而不更改csv文件本身中的数据。 现在,如果我用两个单引号替换一个单引号,它工作正常,与双引号相同,用两个替换单个引号,它的工作原理。但我不想碰源文件。 要访问的代码如下: 这样做的结果是跳过下一行(也包含双引号),插入所有奇数行,跳过偶数行 提前谢谢

  • 问题内容: 这实际上有什么区别? 这工作正常: 但以下操作无效: 这是为什么? 问题答案: 那是因为双引号被认为是标准的,而单引号却没有。这并不是真正针对JQuery,而是关于JSON标准。因此,无论使用JS工具包,您都应该期待相同的行为。 值可以是带双引号的字符串,也可以是数字,也可以是true或false或null,或者是对象或数组。这些结构可以嵌套。