1

这个问题今天让我发疯了。

(注意我添加了空格来阻止下面的字符被编码)

在输入 XML 文件中,我有 html 文本,例如“& lt;li class=& quot;classname& quot;& gt;”

输入文件已根据我们的需要正确编码。

问题是我通过 XSLT 运行它来将 XML 转换为 CSV。< 一切都很好 & gt;,但 XSLT 正在输出 & quot; 作为'"'。所以我最后求助于下面的xslt段来尝试将嵌入的引号替换回"。

我不知道如何让 xslt 用 & quot; 替换引号,所以,因为我已经在使用 ant 进行 xslt 处理,所以我认为使用 ANT replace 替换 '\" 会更容易' 在 xslt 任务之后加上 & quot;。

现在我要疯了,因为 ANT 也在扩张 并将 \" 替换为 "!!!

所以问题的一部分:1.有没有办法保存&QUOT; 在 xslt 转换期间。(最好) 2. 如果没有,有没有办法将 xslt 中的 " 替换为 & quot; ? 3. 如果它们都不起作用,那么让 ANT 输出 & quot; 而不是 " 的语法是什么(即转义实体)

蚂蚁

<replace file="${dataload.dataDir}/inbound/products/wc_store_locator.csv" token='\"' value="&quot;" />

XSLT

<xsl:call-template name="replace-quotes">
          <xsl:with-param name="text" select="notificationMessage"/>
          <xsl:with-param name="replace" select="'&quot;'" />
          <xsl:with-param name="with" select="'\&quot;'"/>
      </xsl:call-template>
      <xsl:text>&quot;</xsl:text>

      <xsl:text>&#10;</xsl:text>

    </xsl:for-each>
  </xsl:template>

  <xsl:template name="replace-quotes">
        <xsl:param name="text"/>
        <xsl:param name="replace"/>
        <xsl:param name="with"/>
        <xsl:choose>
            <xsl:when test="contains($text,$replace)">
                <xsl:value-of select="substring-before($text,$replace)"/>
                <xsl:value-of select="$with"/>
                <xsl:call-template name="replace-quotes">
                    <xsl:with-param name="text"
                        select="substring-after($text,$replace)"/>
                    <xsl:with-param name="replace" select="$replace"/>
                    <xsl:with-param name="with" select="$with"/>
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$text"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
4

2 回答 2

0

啊没关系,我想出了蚂蚁的语法:

它是:&quot;

于 2013-11-13T02:43:43.700 回答
0

使用不支持 XML 的进程替换 "&quot;似乎很疯狂——它将替换所有属性分隔引号以及出现在文本内容中的引号。

当我看到这种问题时,我的第一反应是挑战要求。你为什么要这样做?当 XML 解析器不需要转义引号时,为什么需要转义引号?您是否使用不是真正的 XML 解析器的东西来阅读 XML,如果是,为什么?如果您不想正确使用 XML,那么使用它是否明智?

于 2013-11-13T08:28:24.827 回答