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>&#34;</xsl:text>
    <xsl:call-template name="escapeQuote">
        <xsl:with-param name="paramStr" select="$val2" />
    </xsl:call-template>
    <xsl:text>&#34;</xsl:text>

    <xsl:text>&#44;</xsl:text>
    <xsl:text>&#34;</xsl:text>
    <xsl:value-of select="concat($url, $val1)" />
    <xsl:text>&#34;</xsl:text>

    <xsl:text>&#44;</xsl:text>
    <xsl:text>&#34;</xsl:text>
    <xsl:value-of select="$src" />
    <xsl:text>&#34;</xsl:text>
    <xsl:text>&#10;</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, '&quot;'), '&quot;')" />
        <xsl:if test="contains($paramStr, '&quot;')">
            <xsl:text>\"</xsl:text>
            <xsl:call-template name="escapeQuote">
                <xsl:with-param name="paramStr" select="substring-after($paramStr, '&quot;')" />
            </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>&#34;</xsl:text>
    <xsl:call-template name="escapeQuote">
        <xsl:with-param name="paramStr" select="$val2" />
    </xsl:call-template>
    <xsl:text>&#34;</xsl:text>

    <xsl:text>&#44;</xsl:text>
    <xsl:text>&#34;</xsl:text>
    <xsl:value-of select="concat($url, $val1)" />
    <xsl:text>&#34;</xsl:text>

    <xsl:text>&#44;</xsl:text>
    <xsl:text>&#34;</xsl:text>
    <xsl:value-of select="$src" />
    <xsl:text>&#34;</xsl:text>
    <xsl:text>&#10;</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, '&quot;'), '&quot;')" />
        <xsl:if test="contains($paramStr, '&quot;')">
            <xsl:text>\"</xsl:text>
            <xsl:call-template name="escapeQuote">
                <xsl:with-param name="paramStr" select="substring-after($paramStr, '&quot;')" />
            </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>&#34;</xsl:text>
    <xsl:call-template name="escapeQuote">
        <xsl:with-param name="paramStr" select="$val2" />
    </xsl:call-template>
    <xsl:text>&#34;</xsl:text>

    <xsl:text>&#44;</xsl:text>
    <xsl:text>&#34;</xsl:text>
    <xsl:value-of select="concat($url, $val1)" />
    <xsl:text>&#34;</xsl:text>

    <xsl:text>&#44;</xsl:text>
    <xsl:text>&#34;</xsl:text>
    <xsl:value-of select="$src" />
    <xsl:text>&#34;</xsl:text>
    <xsl:text>&#10;</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, '&quot;'), '&quot;')" />
        <xsl:if test="contains($paramStr, '&quot;')">
            <xsl:text>\"</xsl:text>
            <xsl:call-template name="escapeQuote">
                <xsl:with-param name="paramStr" select="substring-after($paramStr, '&quot;')" />
            </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"