【发布时间】:2020-01-26 00:10:39
【问题描述】:
我想使用 XSLT 将一些 XML 转换为 JSON。
XML 如下所示:
<DATA_DS>
<G_1>
<ORGANIZATION_NAME>My Company 1</ORGANIZATION_NAME>
<ORGANIZATIONID>901</ORGANIZATIONID>
<ITEMNUMBER>20001</ITEMNUMBER>
<ITEMDESCRIPTION>Item Description 1</ITEMDESCRIPTION>
</G_1>
<G_1>
<ORGANIZATION_NAME>My Company 1</ORGANIZATION_NAME>
<ORGANIZATIONID>901</ORGANIZATIONID>
<ITEMNUMBER>20002</ITEMNUMBER>
<ITEMDESCRIPTION>Item Description 2</ITEMDESCRIPTION>
</G_1>
<G_1>
<ORGANIZATION_NAME>My Company 1</ORGANIZATION_NAME>
<ORGANIZATIONID>901</ORGANIZATIONID>
<ITEMNUMBER>20003</ITEMNUMBER>
<ITEMDESCRIPTION>Item Description 3</ITEMDESCRIPTION>
</G_1>
</DATA_DS>
我希望 JSON 如下所示:
[
{
"Item_Number":"20001",
"Item_Description":"Item Description 1"
},
{
"Item_Number":"20002",
"Item_Description":"Item Description 2"
},
{
"Item_Number":"20003",
"Item_Description":"Item Description 3"
}
]
推荐的方法是什么?
我正在考虑两种方法:
尝试使用
fn:xml-to-json函数,定义在https://www.w3.org/TR/xpath-functions-31/#func-xml-to-json。但据我了解,输入 XML 必须遵循以下定义的特定格式:https://www.w3.org/TR/xpath-functions-31/schema-for-json.xsd。而且我还需要输出 JSON 中的字段名称具体为“Item_Number”和“Item_Description”。手动编码括号和大括号字符“[”、“]”、“{”和“}”,以及字段名称“Item_Number”和“Item_Description”。然后使用标准函数列出值并确保正确处理任何特殊字符。例如,“&”字符应该正常出现在 JSON 输出中。
推荐的方法是什么,或者有没有我没有考虑过的更好的方法?
【问题讨论】:
-
问题标记为
xslt-2.0- 但 JSON 转换需要 XSLT 3.0。 -
感谢您指出这一点。我在我的实际环境中尝试了新代码,我确认xml-to-json能够正常运行。