xslt在参数中转义双引号
我有一些这样的数据(大量编辑) 我想要什么xslt在参数中转义双引号,xslt,Xslt,我有一些这样的数据(大量编辑) 我想要什么 "\"C\" Carrie","https://chem.nlm.nih.gov/chemidplus/sid/startswith/000050362","nlm" 现在,当我尝试转义双引号时,例如“C”Carrie,它不起作用,我怀疑是因为我需要调用一个模板,在一个名为 有人能给我一些建议吗?应该在或printvalues中调用它吗 可以从任何位置调用模板。请在以下XSLT中查找相同的内容。我自由地清理了printValues模板,并将URL和n
"\"C\" Carrie","https://chem.nlm.nih.gov/chemidplus/sid/startswith/000050362","nlm"
现在,当我尝试转义双引号时,例如“C”Carrie,它不起作用,我怀疑是因为我需要调用一个模板,在一个名为
有人能给我一些建议吗?应该在
或printvalues
中调用它吗
可以从任何位置调用模板。请在以下XSLT中查找相同的内容。我自由地清理了printValues
模板,并将URL
和nlm
移动到常量中
<xsl:template name="printValues">
<xsl:param name="val1" />
<xsl:param name="val2" />
<!-- constants -->
<xsl:variable name="url" select="'https://chem.nlm.nih.gov/chemidplus/sid/startswith/'" />
<xsl:variable name="src" select="'nlm'" />
<xsl:text>"</xsl:text>
<xsl:call-template name="escapeQuote">
<xsl:with-param name="paramStr" select="$val2" />
</xsl:call-template>
<xsl:text>"</xsl:text>
<xsl:text>,</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="concat($url, $val1)" />
<xsl:text>"</xsl:text>
<xsl:text>,</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="$src" />
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="escapeQuote">
<xsl:param name="paramStr" />
<xsl:if test="string-length($paramStr) > 0">
<xsl:value-of select="substring-before(concat($paramStr, '"'), '"')" />
<xsl:if test="contains($paramStr, '"')">
<xsl:text>\"</xsl:text>
<xsl:call-template name="escapeQuote">
<xsl:with-param name="paramStr" select="substring-after($paramStr, '"')" />
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
它应该在
处调用还是在打印值中调用
可以从任何位置调用模板。请在以下XSLT中查找相同的内容。我自由地清理了printValues
模板,并将URL
和nlm
移动到常量中
<xsl:template name="printValues">
<xsl:param name="val1" />
<xsl:param name="val2" />
<!-- constants -->
<xsl:variable name="url" select="'https://chem.nlm.nih.gov/chemidplus/sid/startswith/'" />
<xsl:variable name="src" select="'nlm'" />
<xsl:text>"</xsl:text>
<xsl:call-template name="escapeQuote">
<xsl:with-param name="paramStr" select="$val2" />
</xsl:call-template>
<xsl:text>"</xsl:text>
<xsl:text>,</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="concat($url, $val1)" />
<xsl:text>"</xsl:text>
<xsl:text>,</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="$src" />
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="escapeQuote">
<xsl:param name="paramStr" />
<xsl:if test="string-length($paramStr) > 0">
<xsl:value-of select="substring-before(concat($paramStr, '"'), '"')" />
<xsl:if test="contains($paramStr, '"')">
<xsl:text>\"</xsl:text>
<xsl:call-template name="escapeQuote">
<xsl:with-param name="paramStr" select="substring-after($paramStr, '"')" />
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
我可能做错了,但当我尝试调用escapeQuote时,我无法让它工作。。它应该在printvalues中调用还是在printvalues中调用?可能是重复的我可能做错了,但当我尝试调用escapeQuote时,我无法让它工作。。它应该在printvalues中调用还是在printvalues中调用?
"\"C\" Carrie","https://chem.nlm.nih.gov/chemidplus/sid/startswith/000050362","nlm"
<xsl:template name="printValues">
<xsl:param name="val1" />
<xsl:param name="val2" />
<!-- constants -->
<xsl:variable name="url" select="'https://chem.nlm.nih.gov/chemidplus/sid/startswith/'" />
<xsl:variable name="src" select="'nlm'" />
<xsl:text>"</xsl:text>
<xsl:call-template name="escapeQuote">
<xsl:with-param name="paramStr" select="$val2" />
</xsl:call-template>
<xsl:text>"</xsl:text>
<xsl:text>,</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="concat($url, $val1)" />
<xsl:text>"</xsl:text>
<xsl:text>,</xsl:text>
<xsl:text>"</xsl:text>
<xsl:value-of select="$src" />
<xsl:text>"</xsl:text>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template name="escapeQuote">
<xsl:param name="paramStr" />
<xsl:if test="string-length($paramStr) > 0">
<xsl:value-of select="substring-before(concat($paramStr, '"'), '"')" />
<xsl:if test="contains($paramStr, '"')">
<xsl:text>\"</xsl:text>
<xsl:call-template name="escapeQuote">
<xsl:with-param name="paramStr" select="substring-after($paramStr, '"')" />
</xsl:call-template>
</xsl:if>
</xsl:if>
</xsl:template>
"Cocaine [BAN]","https://chem.nlm.nih.gov/chemidplus/sid/startswith/000050362","nlm"
"Cocaine","https://chem.nlm.nih.gov/chemidplus/sid/startswith/000050362","nlm"
"\"C\" Carrie","https://chem.nlm.nih.gov/chemidplus/sid/startswith/000050362","nlm"