Вы можете использовать следующую таблицу стилей.Он работает так, как нужно для данного входного XML:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/DATA">
<xsl:text>{
"appName": "PERFORMANCE",
"statsName": "Status Counts",
"DateBegin": "xxxxxx",
"DateEnd": "xxxxxxx",
"data":
</xsl:text>{
<xsl:apply-templates select="*" /><xsl:text>
}
}</xsl:text>
</xsl:template>
<xsl:template match="SUCCESS|REJECT|FAILURE|ERROR|TERMINATED">
<xsl:value-of select="concat('"',local-name(),'": ',COUNT___)" />
<xsl:if test="position() != last()">,
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Его вывод:
{
"appName": "PERFORMANCE",
"statsName": "Status Counts",
"DateBegin": "xxxxxx",
"DateEnd": "xxxxxxx",
"data":
{
"SUCCESS": 5686,
"REJECT": 641,
"FAILURE": 8536,
"ERROR": 1447,
"TERMINATED": 1341
}
}
Выход не соответствует желаемому выходу, потому что между входом были некоторые несоответствияXML и желаемый выходной XML.Измените XSLT в соответствии с вашими потребностями.