如何通过XSLT和ANT在入站XML文件中保留
这个问题今天快把我逼疯了 注意,我添加了空格,以阻止下面的字符被编码 在输入XML文件中,我有html文本,如“li class=”classname“> 输入文件的编码符合我们的需要 问题是我正在通过XSLT运行它,以将XML转换为CSV。对于<;>;,一切正常,但XSLT将“as.”输出。因此,我最终求助于下面的XSLT段,尝试将嵌入的引号替换回“as.” 我不知道如何让xslt将引号替换为“所以,因为我已经在使用ant进行xslt处理,所以我认为在xslt任务之后使用ant替换将“\”替换为“会更容易 现在我快发疯了,因为ANT也在扩展“并将\替换为” 因此,问题的各个部分如下: 1.是否有办法在xslt转换过程中保留“最佳” 2.如果没有,是否有办法将xslt中的字符串替换为“? 3.如果两者都不起作用,那么让ANT“输出”而不是转义实体的语法是什么 蚂蚁 XSLT如何通过XSLT和ANT在入站XML文件中保留,xslt,ant,Xslt,Ant,这个问题今天快把我逼疯了 注意,我添加了空格,以阻止下面的字符被编码 在输入XML文件中,我有html文本,如“li class=”classname“> 输入文件的编码符合我们的需要 问题是我正在通过XSLT运行它,以将XML转换为CSV。对于<;>;,一切正常,但XSLT将“as.”输出。因此,我最终求助于下面的XSLT段,尝试将嵌入的引号替换回“as.” 我不知道如何让xslt将引号替换为“所以,因为我已经在使用ant进行xslt处理,所以我认为在xslt任务之后使用ant替换
啊,没关系,我想出了蚂蚁的语法: 它是: &";使用不支持XML的进程替换似乎很疯狂—它将替换所有属性分隔引号以及文本内容中出现的引号
当我看到这类问题时,我的直接反应是挑战需求。你为什么要这样做?为什么你需要转义引号,而XML解析器不需要转义引号?你阅读XML时使用的是不是真正的XML解析器,如果是,为什么?如果你不想正确使用XML,明智吗要使用它吗?我们使用的是我们正在实现的产品附带的XML加载器。我最近将界面切换为CSV,以便与批处理的其余部分更加一致。但是源系统团队在几周内无法生成CSV,因此我临时编写了一个XSLT,将XML转换为CSV,直到Source可以生成CSV。编码在文件中,因为我们将HTML作为某些文本字段的一部分导入,但它是数据库内容的一部分。编码HTML比摆弄转义引号等更容易。此外,XSLT仅将特定字段的引号转换为\,然后ANT将\替换为“引用”,因此这种方法没有全局替换的风险。我更希望xslt直接写出“…”。。。。
<replace file="${dataload.dataDir}/inbound/products/wc_store_locator.csv" token='\"' value=""" />
<xsl:call-template name="replace-quotes">
<xsl:with-param name="text" select="notificationMessage"/>
<xsl:with-param name="replace" select="'"'" />
<xsl:with-param name="with" select="'\"'"/>
</xsl:call-template>
<xsl:text>"</xsl:text>
<xsl:text> </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>