powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML -> JSON
5 сообщений из 5, страница 1 из 1
XML -> JSON
    #40004487
Co_balt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi All!

Есть задача преобразовать XML-файл в JSON формат при помощи XSLT. Но я не нашел в интернете ни одной реализации, которая делает это корректно (создает валидный JSON файл)
Может у кого есть наработки по этой задачи?
Прилагаю XML файл, который надо преобразовать и JSON файл, который я хочу получить.


Код: xml
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>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#13;
&lt;MT_BOM&gt;&#13;
   &lt;ID_MSG&gt;959b7321-fe46-11ea-925a-e40d0a0ba55a&lt;/ID_MSG&gt;&#13;
   &lt;CSAP_MBOM&gt;&#13;
      &lt;MATERIAL&gt;PMQMII7878_5906.03&lt;/MATERIAL&gt;&#13;
      &lt;PLANT&gt;2000&lt;/PLANT&gt;&#13;
      &lt;ALTERNATIVE&gt;4&lt;/ALTERNATIVE&gt;&#13;
   &lt;/CSAP_MBOM&gt;&#13;
   &lt;I_STKO&gt;&#13;
      &lt;BASE_QUAN&gt;1000&lt;/BASE_QUAN&gt;&#13;
      &lt;BASE_UNIT&gt;ST&lt;/BASE_UNIT&gt;&#13;
   &lt;/I_STKO&gt;&#13;
   &lt;T_STPO&gt;&#13;
      &lt;item&gt;&#13;
         &lt;ITEM_NO&gt;0010&lt;/ITEM_NO&gt;&#13;
         &lt;ITM_IDENT&gt;MII00001&lt;/ITM_IDENT&gt;&#13;
         &lt;COMP_QTY&gt;1&lt;/COMP_QTY&gt;&#13;
         &lt;COMP_UNIT&gt;KG&lt;/COMP_UNIT&gt;&#13;
         &lt;COMPONENT&gt;001-300-01&lt;/COMPONENT&gt;&#13;
         &lt;PROC_TYPE/&gt;&#13;
         &lt;SPPROCTYPE&gt;74&lt;/SPPROCTYPE&gt;&#13;
      &lt;/item&gt;&#13;
      &lt;item&gt;&#13;
         &lt;ITEM_NO&gt;0020&lt;/ITEM_NO&gt;&#13;
         &lt;ITM_IDENT&gt;MII00002&lt;/ITM_IDENT&gt;&#13;
         &lt;COMP_QTY&gt;2&lt;/COMP_QTY&gt;&#13;
         &lt;COMP_UNIT&gt;KG&lt;/COMP_UNIT&gt;&#13;
         &lt;COMPONENT&gt;120206.01403&lt;/COMPONENT&gt;&#13;
         &lt;PROC_TYPE/&gt;&#13;
         &lt;SPPROCTYPE/&gt;&#13;
      &lt;/item&gt;&#13;
   &lt;/T_STPO&gt;&#13;
&lt;/MT_BOM&gt;</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>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#13;
&lt;MT_BOM&gt;&#13;
   &lt;ID_MSG&gt;859b7321-fe46-11ea-925a-e40d0a0ba55a&lt;/ID_MSG&gt;&#13;
&lt;/MT_BOM&gt;</Message>
            <QueueNameID>12</QueueNameID>
            <QueueStatusID>0</QueueStatusID>
        </Row>
    </Rowset>
</Rowsets>



не было тэга для JSON - поместил в C++
Код: plaintext
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
			} ]
		}
	}
}


...
Рейтинг: 0 / 0
XML -> JSON
    #40004659
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в чем сложность?
Код: xml
1.
<xsl:output method="text" encoding="utf-8"/>

и каскад <xsl:text>.

С экранированием русских символов придется повозиться
...
Рейтинг: 0 / 0
XML -> JSON
    #40004785
Co_balt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
И в чем сложность?

Сразу видно, что Вы не знаете насколько глубока кроличья нора
...
Рейтинг: 0 / 0
XML -> JSON
    #40004795
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Co_balt
_Vasilisk_
И в чем сложность?
Сразу видно, что Вы не знаете насколько глубока кроличья нора
Хорошо. Ищите не того, кто может дать совет, а надейтесь, что найдется тот, кто уже решил вашу задачу
...
Рейтинг: 0 / 0
XML -> JSON
    #40004936
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй без &#13; в xml
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML -> JSON
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (10): Анонимы (7), Google Bot, Yandex Bot, Bing Bot 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]