使用xsltproc(XSLT 1.0)我试图逃脱("-
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,但没有成功。禁用输出转义=“是”也没有成功。
有什么暗示吗?
--
xsltproc-V
使用libxml 20706、libxslt 10126和libexslt 815
这适用于XPath 2.0
"name":"<xsl:value-of select='fn:replace(@name, """", "\\""")' />"
据我所知,xsltproc不支持Xpath 2.0,但EXSLT扩展可能提供相同的功能
如果你想逃避这种事会有帮助
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match ="signature">
<xsl:variable name="escape">
<xsl:call-template name="escape_quot">
<xsl:with-param name="replace" select="@name"/>
</xsl:call-template>
</xsl:variable>
"name":"<xsl:value-of select="$escape" />",
</xsl:template>
<xsl:template name="escape_quot">
<xsl:param name="replace"/>
<xsl:choose>
<xsl:when test="contains($replace,'"')">
<xsl:value-of select="substring-before($replace,'"')"/>
<!-- escape quot-->
<xsl:text>\"</xsl:text>
<xsl:call-template name="escape_quot">
<xsl:with-param name="replace" select="substring-after($replace,'"')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$replace"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
这将产生惯常的输出。
"name":"My \"case\"",
更新:
但是将向外的quot更改为撇号还不够吗?
与:
"name":'<xsl:value-of select="@name" />',
得到:
"name":'My "case"',
(这应该是有效的JSON)
作为一个简化的例子,考虑这个有两个字段的表。一个是字符串,另一个是XML。 Source=“MediaConversions” 现在我想查询该表,并将结果作为json,但也要一次性将XML转换为json。 导致 [{"Source":"媒体转换","OrderParameter":" 但我想把它转换成: [{"Source":"MediaConversion","OrderParameter":{
主要内容:XML 属性,XML 属性必须加引号,XML 元素 vs. 属性,我最喜欢的方式,避免 XML 属性?,针对元数据的 XML 属性XML元素具有属性,类似 HTML。 属性(Attribute)提供有关元素的额外信息。 XML 属性 在 HTML 中,属性提供有关元素的额外信息: <img src="computer.gif"> <a href="demo.html"> 属性通常提供不属于数据组成部分的信息。在下面的实例中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:
这个问题最近出现了。我已经使用蚂蚁很久了,我知道我可以“破解”这个问题,但我想问:蚂蚁是否为这个用例提供了一个优雅的解决方案? 问题 当我使用ant复制xml文件并使用“filtering”属性“填充值”时,我如何才能使它自动转义&符号(以及其他xml“特殊字符”)? 上下文 我们让安装人员/实现人员在应用程序的根目录下编辑一个“build.properties”文件,而不是让他们手动编辑各种应用
我试图使用WooCommerce的分层导航属性过滤侧边栏小部件过滤WooCommerce商店中的〜30,000种产品。这需要使用预定义的产品属性分类法,而不是在每个产品的基础上使用自定义属性。 商店里的每种产品都有一个导入的定制“品牌”属性。在导入产品之前,我在wp-admin中创建了一个名为()的属性分类法。然而,进口产品没有将其品牌属性(和术语名称)添加到品牌()分类中。取而代之的是,所有的产
问题内容: 我想将特定节点N的属性X的值解组到struct字段。像这样: http://play.golang.org/p/U6daYJWVUX 据我能够检查,Go不支持此功能。我是正确的,还是我在这里错过了什么? 问题答案: 在您的问题中,您没有提及。我猜您需要将其属性编组为?如果是这样-您可以将A结构更改为以下形式: 甚至更好-定义单独的B结构:
我想从RSS提要中读出一个带有简单XML的特定属性。 项目示例: 我想阅读媒体中的网址:内容。 读取我使用的其他标记:$xml- 读取我尝试的媒体url属性:$xml- 但这只是返回NULL。它与内容有关,内容是一个名称空间。