【发布时间】:2013-04-20 19:18:26
【问题描述】:
使用 xsltproc (XSLT 1.0) 我试图从 xsl-value @name 属性中转义(“-> 到 \”)内容。
XSL:
<xsl:template match="int:signature">
"name":"<xsl:value-of select="@name" mode="text"/>",
....
原始 XML:
<signature name="My "case"" />
输出:
"name":"My "case"",
这会破坏生成的 JSON
我尝试使用 str:replace 没有成功。 disable-output-escaping="yes" 也没有成功。
有什么提示吗?
--
xsltproc -V
使用 libxml 20706、libxslt 10126 和 libexslt 815
【问题讨论】:
-
请添加一个带有您预期输出(也可能是输入)的示例:喊这个是
"name":"xxxxx"或\"name":\"xxxxx\"。还是应该改一下@name的内容? -
我对解释做了一些改进。是的,@name 的内容应该被改变(被转义)。
-
xslt 1.0 的一种可能性是使用递归模板调用来转义引号。但是,将外在的引号改为撇号还不够吗?
"name":My "case"´,`(这应该是有效的 jason)