我是 xslt 新手,我有一个包含这些元素的 xml
<cbl:ShippingAddress>
<cbl:AddressLine AddressLineNumber="1">
<cbl:Line>line1</cbl:Line>
</cbl:AddressLine>
<cbl:AddressLine AddressLineNumber="2">
<cbl:Line>line2</cbl:Line>
</cbl:AddressLine>
</cbl:ShippingAddress>
使用此代码
<map key="address">
<array key="lines">
<xsl:for-each select="/cbl:ShippingAddress/cbl:AddressLine/cbl:Line">
<map>
<string key="line">{.}</string>
</map>
</xsl:for-each>
</array>
</map>
我得到输出
"lines": [
{
"line": "line1"
},
{
"line": "line2"
}
],
我需要我的输出是这样的,但不知道如何
"lines": [
"line1",
"line2"
],
如果我只是更改<array key="lines"> to <array>
我会收到错误消息:
xml-to-json: 的子元素必须有一个 key 属性
有没有一种简单的方法可以实现这一目标?我浏览了很多例子,找不到它
例子
在线小提琴示例。
您还可以用另一种方式来看待这个问题:
XML(已更正为格式正确!)
XSLT 3.0
结果
演示