I am using xslt 1.0.
Input xml (simplified version):
<?xml version="1.0" encoding="utf-8"?>
<ASBMessage id="id" version="version" timestamp="timestamp">
<Body items="items">
<AccountData operation="operation">
<Account>
<ID value="value" namespace="namespace"/>
<ID value="value" namespace="namespace"/>
<Type id="id"/>
</Account>
</AccountData>
</Body>
</ASBMessage>
Expected output:
<?xml version="1.0" encoding="utf-8"?>
<data>
<o t="TVEQE_ASBMessage">
<a n="id">
<v s="id"/>
</a>
<a n="timestamp">
<v s="timestamp"/>
</a>
<a n="version">
<v s="version"/>
</a>
<a n="TVEQE_Body">
<o t="TVEQE_Body">
<a n="items">
<v s="items"/>
</a>
<a n="TVEQE_AccountData">
<o t="TVEQE_AccountData">
<a n="operation">
<v s="operation"/>
</a>
<a n="TVEQE_Account">
<o t="TVEQE_Account">
<a n="TVEQE_ID">
<o t="TVEQE_ID">
<a n="namespace">
<v s="namespace"/>
</a>
<a n="value">
<v s="value"/>
</a>
</o>
<o t="TVEQE_ID">
<a n="namespace">
<v s="namespace"/>
</a>
<a n="value">
<v s="value"/>
</a>
</o>
</a>
<a n="TVEQE_Type">
<o t="TVEQE_Type">
<a n="id">
<v s="id"/>
</a>
</o>
</a>
</o>
</a>
</o>
</a>
</o>
</a>
</o>
</data>
My xslt below does not generate the expected output for similar
element which appeared more than once.
<xsl:template match="/ASBMessage">
<data>
<o t="TVEQE_{name(.)}">
<xsl:for-each select="@*">
<a n="{name(.)}"><v s="{.}"></v></a>
</xsl:for-each>
<xsl:apply-templates/>
</o>
</data>
</xsl:template>
<xsl:template match="*">
<a n="TVEQE_{name(.)}">
<o t="TVEQE_{name(.)}">
<xsl:for-each select="@*">
<a n="{name(.)}"><v s="{.}"></v></a>
</xsl:for-each>
<xsl:apply-templates/>
</o>
</a>
</xsl:template>
For example, for <ID> element which appeared twice, it generated,
<a n="TVEQE_ID">
<o t="TVEQE_ID">
<a n="namespace">
<v s="namespace"/>
</a>
<a n="value">
<v s="value"/>
</a>
</o>
</a>
<a n="TVEQE_ID">
<o t="TVEQE_ID">
<a n="namespace">
<v s="namespace"/>
</a>
<a n="value">
<v s="value"/>
</a>
</o>
</a>
The expected output is to have both ID element encapsulated in single
<a></a> element.
Any help is appreciated. Thanks.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--