使用 xslt 1.0 将 xml(带有 json) 转换为 json 响应

Convert an xml(with a json) to a json response using xslt 1.0

提问人:Mohil M 提问时间:10/8/2023 最后编辑:Mohil M 更新时间:10/8/2023 访问量:56

问:

我有一个请求 xml,它有一个 json ->我想使用 xslt 将其映射到另一个 json。我正在使用 xslt 1.0。有没有办法在 xslt 1.0 中实现这一点: 请求 xml 为:

<root> { "id": 5656, "country-name": "country-text" } <root>

我需要映射到的响应:

{ "mid": 5656, "cid" : "country-text" }

请协助

我尝试了几种方法,能够将源 json 复制到最终响应中 - 但这无济于事,因为我需要读取单个字段并将它们映射到不同的键

使用我尝试的方法 -> 我能够得到{id:5656, country-name:'country-text' }

我想要的是:

{ mid: 5656, cid : 'country-text' }

XML XSLT XSLT-1.0

评论


答:

1赞 michael.hor257k 10/8/2023 #1

我想这是你可以看它的一种方式:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>

<xsl:template match="/root">
    <xsl:text>{ mid: </xsl:text>
    <xsl:value-of select="substring-before(substring-after(., '&quot;id&quot;: '), ',')" />
    <xsl:text>, cid : </xsl:text>
    <xsl:value-of select="substring-before(substring-after(., '&quot;country-name&quot;: '), ' }')" />
    <xsl:text> }</xsl:text>
</xsl:template>

</xsl:stylesheet>

请注意,这假定它始终是 JSON 对象中的最后一对,而不是。country-nameid

评论

0赞 Mohil M 10/8/2023
嗨 @michael.hor257k,我的请求 json 是:。(我还编辑了问题)我没有通过上面的输入json获得值<root> { "id": 5656, "country-name": "country-text" } <r/oot>
0赞 michael.hor257k 10/8/2023
@MohilM 在回答问题后,您不应更改问题。我已经调整了我的答案以使用您修改后的输入。如果你花时间了解它是如何工作的,你本可以做同样的事情。
0赞 Mohil M 10/22/2023
谢谢你,这个解决方案是完美的。感谢您的时间并帮助您:)