XML -> JSON
#40004487
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
Hi All!
Есть задача преобразовать XML-файл в JSON формат при помощи XSLT. Но я не нашел в интернете ни одной реализации, которая делает это корректно (создает валидный JSON файл)
Может у кого есть наработки по этой задачи?
Прилагаю XML файл, который надо преобразовать и JSON файл, который я хочу получить.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
<?xml version="1.0" encoding="UTF-8"?>
<Rowsets DateCreated="2020-10-01T11:21:52" EndDate="2019-04-03T10:50:30" StartDate="2019-04-03T10:50:30" Version="12.1.9 Build(109)">
<Rowset>
<Columns>
<Column Description="" MaxRange="1" MinRange="0" Name="ID" SQLDataType="1" SourceColumn="ID"/>
<Column Description="Время возникновения события" MaxRange="1" MinRange="0" Name="TimeStamp" SQLDataType="93" SourceColumn="TimeStamp"/>
<Column Description="" MaxRange="1" MinRange="0" Name="QueueName" SQLDataType="1" SourceColumn="QueueName"/>
<Column Description="Статус сообщения" MaxRange="1" MinRange="0" Name="QueueStatus" SQLDataType="1" SourceColumn="QueueStatus"/>
<Column Description="" MaxRange="1" MinRange="0" Name="Journal" SQLDataType="1" SourceColumn="Journal"/>
<Column Description="Сообщение" MaxRange="1" MinRange="0" Name="Message" SQLDataType="1" SourceColumn="Message"/>
<Column Description="" MaxRange="1" MinRange="0" Name="QueueNameID" SQLDataType="1" SourceColumn="QueueNameID"/>
<Column Description="Статус сообщения" MaxRange="1" MinRange="0" Name="QueueStatusID" SQLDataType="1" SourceColumn="QueueStatusID"/>
</Columns>
<Row>
<ID>959b7321-fe46-11ea-925a-e40d0a0ba55a</ID>
<TimeStamp>2020-09-30T12:39:14</TimeStamp>
<QueueName>MT_BOM</QueueName>
<QueueStatus>Необработанные</QueueStatus>
<Journal/>
<Message><?xml version="1.0" encoding="UTF-8"?>
<MT_BOM>
<ID_MSG>959b7321-fe46-11ea-925a-e40d0a0ba55a</ID_MSG>
<CSAP_MBOM>
<MATERIAL>PMQMII7878_5906.03</MATERIAL>
<PLANT>2000</PLANT>
<ALTERNATIVE>4</ALTERNATIVE>
</CSAP_MBOM>
<I_STKO>
<BASE_QUAN>1000</BASE_QUAN>
<BASE_UNIT>ST</BASE_UNIT>
</I_STKO>
<T_STPO>
<item>
<ITEM_NO>0010</ITEM_NO>
<ITM_IDENT>MII00001</ITM_IDENT>
<COMP_QTY>1</COMP_QTY>
<COMP_UNIT>KG</COMP_UNIT>
<COMPONENT>001-300-01</COMPONENT>
<PROC_TYPE/>
<SPPROCTYPE>74</SPPROCTYPE>
</item>
<item>
<ITEM_NO>0020</ITEM_NO>
<ITM_IDENT>MII00002</ITM_IDENT>
<COMP_QTY>2</COMP_QTY>
<COMP_UNIT>KG</COMP_UNIT>
<COMPONENT>120206.01403</COMPONENT>
<PROC_TYPE/>
<SPPROCTYPE/>
</item>
</T_STPO>
</MT_BOM></Message>
<QueueNameID>12</QueueNameID>
<QueueStatusID>0</QueueStatusID>
</Row>
<Row>
<ID>859b7321-fe46-11ea-925a-e40d0a0ba55a</ID>
<TimeStamp>2020-09-30T15:21:54</TimeStamp>
<QueueName>MT_BOM</QueueName>
<QueueStatus>Необработанные</QueueStatus>
<Journal/>
<Message><?xml version="1.0" encoding="UTF-8"?>
<MT_BOM>
<ID_MSG>859b7321-fe46-11ea-925a-e40d0a0ba55a</ID_MSG>
</MT_BOM></Message>
<QueueNameID>12</QueueNameID>
<QueueStatusID>0</QueueStatusID>
</Row>
</Rowset>
</Rowsets>
не было тэга для JSON - поместил в C++
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88.
{
"Rowsets" : {
"@DateCreated" : "2020-10-01T11:21:52",
"@EndDate" : "2019-04-03T10:50:30",
"@StartDate" : "2019-04-03T10:50:30",
"@Version" : "12.1.9 Build(109)",
"Rowset" : {
"Columns" : {
"Column" : [ {
"@Description" : "",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "ID",
"@SQLDataType" : "1",
"@SourceColumn" : "ID"
}, {
"@Description" : "Время возникновения события",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "TimeStamp",
"@SQLDataType" : "93",
"@SourceColumn" : "TimeStamp"
}, {
"@Description" : "",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "QueueName",
"@SQLDataType" : "1",
"@SourceColumn" : "QueueName"
}, {
"@Description" : "Статус сообщения",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "QueueStatus",
"@SQLDataType" : "1",
"@SourceColumn" : "QueueStatus"
}, {
"@Description" : "",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "Journal",
"@SQLDataType" : "1",
"@SourceColumn" : "Journal"
}, {
"@Description" : "Сообщение",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "Message",
"@SQLDataType" : "1",
"@SourceColumn" : "Message"
}, {
"@Description" : "",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "QueueNameID",
"@SQLDataType" : "1",
"@SourceColumn" : "QueueNameID"
}, {
"@Description" : "Статус сообщения",
"@MaxRange" : "1",
"@MinRange" : "0",
"@Name" : "QueueStatusID",
"@SQLDataType" : "1",
"@SourceColumn" : "QueueStatusID"
} ]
},
"Row" : [ {
"ID" : "959b7321-fe46-11ea-925a-e40d0a0ba55a",
"TimeStamp" : "2020-09-30T12:39:14",
"QueueName" : "MT_BOM",
"QueueStatus" : "Необработанные",
"Journal" : null,
"Message" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<MT_BOM>\r\n <ID_MSG>959b7321-fe46-11ea-925a-e40d0a0ba55a</ID_MSG>\r\n <CSAP_MBOM>\r\n <MATERIAL>PMQMII7878_5906.03</MATERIAL>\r\n <PLANT>2000</PLANT>\r\n <ALTERNATIVE>4</ALTERNATIVE>\r\n </CSAP_MBOM>\r\n <I_STKO>\r\n <BASE_QUAN>1000</BASE_QUAN>\r\n <BASE_UNIT>ST</BASE_UNIT>\r\n </I_STKO>\r\n <T_STPO>\r\n <item>\r\n <ITEM_NO>0010</ITEM_NO>\r\n <ITM_IDENT>MII00001</ITM_IDENT>\r\n <COMP_QTY>1</COMP_QTY>\r\n <COMP_UNIT>KG</COMP_UNIT>\r\n <COMPONENT>001-300-01</COMPONENT>\r\n <PROC_TYPE/>\r\n <SPPROCTYPE>74</SPPROCTYPE>\r\n </item>\r\n <item>\r\n <ITEM_NO>0020</ITEM_NO>\r\n <ITM_IDENT>MII00002</ITM_IDENT>\r\n <COMP_QTY>2</COMP_QTY>\r\n <COMP_UNIT>KG</COMP_UNIT>\r\n <COMPONENT>120206.01403</COMPONENT>\r\n <PROC_TYPE/>\r\n <SPPROCTYPE/>\r\n </item>\r\n </T_STPO>\r\n</MT_BOM>",
"QueueNameID" : 12,
"QueueStatusID" : 0
}, {
"ID" : "859b7321-fe46-11ea-925a-e40d0a0ba55a",
"TimeStamp" : "2020-09-30T15:21:54",
"QueueName" : "MT_BOM",
"QueueStatus" : "Необработанные",
"Journal" : null,
"Message" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<MT_BOM>\r\n <ID_MSG>859b7321-fe46-11ea-925a-e40d0a0ba55a</ID_MSG>\r\n</MT_BOM>",
"QueueNameID" : 12,
"QueueStatusID" : 0
} ]
}
}
}
|
|