Я хотел преобразовать ниже CSV в XML
Пример ввода CSV
01,TeacherHeader1
02,StudentHeader1
03,SubjectHeader1
10,Grade1,Score99
10,Grade2,Score99
48,SubjectTrailer1
49,StudentTrailer1
02,StudentHeader2
03,SubjectHeader1
10,Grade1,Score50
10,Grade2,Score50
48,SubjectTrailer1
49,StudentTrailer2
50,TeacherTrailer1
Вывод должен быть
<FileHeader>
<id>01</id>
<name>TeacherHeader1</name>
</FileHeader>
<GroupRecord>
<GroupHeader>
<id>02</id>
<name>StudentHeader1</name>
</GroupHeader>
<AccountRecord>
<AccountHeader>
<id>03</id>
<name>SubjectHeader1</name>
</AccountHeader>
<AccountDetails>
<Details>
<id>10</id>
<name>Grade1</name>
<value>Score99</value>
</Details>
<Details>
<id>10</id>
<name>Grade2</name>
<value>Score99</value>
</Details>
</AccountDetails>
<AccountTrailer>
<id>48</id>
<name>SubjectTrailer1</name>
</AccountTrailer>
</AccountRecord>
<GroupTrailer>
<id>49</id>
<name>StudentTrailer1</name>
</GroupTrailer>
</GroupRecord>
<GroupRecord>
<GroupHeader>
<id>02</id>
<name>StudentHeader2</name>
</GroupHeader>
<AccountRecord>
<AccountHeader>
<id>03</id>
<name>SubjectHeader1</name>
</AccountHeader>
<AccountDetails>
<Details>
<id>10</id>
<name>Grade1</name>
<value>Score99</value>
</Details>
<Details>
<id>10</id>
<name>Grade2</name>
<value>Score99</value>
</Details>
</AccountDetails>
<AccountTrailer>
<id>48</id>
<name>SubjectTrailer1</name>
</AccountTrailer>
</AccountRecord>
<GroupTrailer>
<id>49</id>
<name>StudentTrailer2</name>
</GroupTrailer>
</GroupRecord>
<FileTrailer>
<id>50</id>
<name>TeacherTrailer1</name>
</FileTrailer>
куда
01 = FileHeader
02 = GroupHeader (grouped inside GroupRecord)
03 = AccountHeader (grouped inside AccountRecord)
10 = Details (grouped inside AccountDetails)
48 = AccountTrailer (grouped inside AccountRecord)
49 = GroupTrailer (group inside GroupRecord)
50 = FileTrailer
Я хотел преобразовать CSV выше в правильно структурированный XML, как показано выше. Любая помощь будет принята с благодарностью. Спасибо.
unparsed-text(-lines)
плюсtokenize
, вы сможете преобразовать текст в XML. Затем вы можете использовать обычныйxsl:for-each-group
. Я не уверен, какой именно подход вам нужен, ваш желаемый результат из-за его форматирования, похоже, указывает на вложенность soem, которую XML не показывает, вы можете улучшить форматирование и удалить любые отступы, где XML не должен вкладываться. - person Martin Honnen   schedule 30.01.2020Score99
иScore50
, почему вывод в виде XML имеет толькоScore99
? - person Martin Honnen   schedule 31.01.2020