Я преобразую XSLT в JSON из исходного XML. Я хочу, чтобы элементы типа массива были преобразованы в "elements: []"
Из данного xslt я сопоставляю имя узла и применяю шаблон. Но как сделать это динамически для каждого элемента типа массива, или я могу выбрать, какой элемент необходимо преобразовать в элемент типа массива в JSON.
Вот мой исходный XML
<order>
<email>mark.h@yopmail.com</email>
<tax-lines>
<tax-line>
<title>CGST</title>
<price>29.00</price>
<rate>0.2</rate>
</tax-line>
</tax-lines>
<freight-Lines>
<freight-Line>
<title>CGST</title>
<price>29.00</price>
<rate>0.2</rate>
</freight-Line>
</freight-Lines>
</order>
XSLT:
<xsl:when test="name()= 'tax-lines'">
[<xsl:apply-templates select="*" mode="ArrayElement"/>]
</xsl:when>
Используя это, я получаю вывод Json как:
{
"order" :
{
"email" :"mark.h@yopmail.com",
"tax-lines" :
[
{
"title" :"CGST",
"price" :"29.00",
"rate" :"0.2"
}
]
}
}
Есть ли способ, с помощью которого я могу сделать то же самое для массива 'freight-Lines' динамически? Означает, что я хочу сделать эту строку динамически
<xsl:when test="name()= 'tax-lines'">
[<xsl:apply-templates select="*" mode="ArrayElement"/>]
</xsl:when>