我想使用XSLT将一些XML转换为JSON。XML如下所示:
<?xml version="1.0" ?>
<CoronaInfections>
<Countries>
<item>
<Country>Afghanistan</Country>
<CountryCode>AF</CountryCode>
<Slug>afghanistan</Slug>
<NewConfirmed>542</NewConfirmed>
<TotalConfirmed>21459</TotalConfirmed>
<NewDeaths>15</NewDeaths>
<TotalDeaths>384</TotalDeaths>
<NewRecovered>480</NewRecovered>
<TotalRecovered>2651</TotalRecovered>
<Date>2020-06-10T10:06:56Z</Date>
<Lat>33.0000</Lat>
<Lng>65.0000</Lng>
</item>
<item>
<Country>Albania</Country>
<CountryCode>AL</CountryCode>
<Slug>albania</Slug>
<NewConfirmed>36</NewConfirmed>
<TotalConfirmed>1299</TotalConfirmed>
<NewDeaths>0</NewDeaths>
<TotalDeaths>34</TotalDeaths>
<NewRecovered>15</NewRecovered>
<TotalRecovered>960</TotalRecovered>
<Date>2020-06-10T10:06:56Z</Date>
<Lat>41.0000</Lat>
<Lng>20.0000</Lng>
</item>
<item>
<Country>Algeria</Country>
<CountryCode>DZ</CountryCode>
<Slug>algeria</Slug>
<NewConfirmed>117</NewConfirmed>
<TotalConfirmed>10382</TotalConfirmed>
<NewDeaths>9</NewDeaths>
<TotalDeaths>724</TotalDeaths>
<NewRecovered>152</NewRecovered>
<TotalRecovered>6951</TotalRecovered>
<Date>2020-06-10T10:06:56Z</Date>
<Lat>28.0000</Lat>
<Lng>3.0000</Lng>
</item>
</Countries>
</CoronaInfections>
我希望GeoJSON如下所示:
{ "type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"radius": 1.0841103742476927,
"id": "AF",
"countryName": "Afghanistan"
},
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [33.0000, 65.0000]
},
},
{
"type": "Feature",
"properties": {
"radius": 0.06562558255966042,
"id": "AL",
"countryName": "Albania"
},
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [41.0000, 20.0000]
},
},
]
}
推荐的方法是什么?
我已经有一种方法,看起来不太好,因为它仅适用于xslt 1.0(我认为)和文本块。看到这里:https://xsltfiddle.liberty-development.net/naZYrpy/1
我更喜欢使用xslt 3.0和xml-to-json函数的更有效的方法,但是似乎无法添加我的其他json对象。
更多示例:1.不起作用:https://xsltfiddle.liberty-development.net/pNmCzsA
提前感谢:-)
如果要直接使用XPath 3.1创建XDM映射和数组以将其序列化为JSON,请使用