我需要根据XML中的属性进行xslt转换。对于带有ed-Cover.i的所有属性,需要在目标xml中创建coverage标签并将其作为子元素映射到它。可以为您请帮我具有属性的XSLT转换
输入XML:
<c>
<m p='ed-Cover'></m>
<m p='premum-amt' v='100'></m>
<m p='premium-rate' v='10'></m>
<m p='prem-date' v='10-04-15'></m>
<m p='ed-Cover'></m>
<m p='premum-amt' v='50'></m>
<m p='premium-rate' v='5'></m>
<m p='prem-date' v='12-03-15'></m>
<m p='ed-Cover'></m>
<m p='premum-amt' v='75'></m>
<m p='premium-rate' v='7'></m>
<m p='prem-date' v='3-05-15'></m>
</c>
XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<coverages>
<xsl:for-each select="c/m">
</xsl:for-each>
</coverages>
</xsl:template>
</xsl:stylesheet>
预期输出:
<coverages>
<coverage>
<coverage-prem-amt>100</coverage-prem-amt>
<coverage-prem-rate>10</coverage-prem-rate>
<coverage-prem-date>10-04-15</coverage-prem-date>
</coverage>
<coverage>
<coverage-prem-amt>50</coverage-prem-amt>
<coverage-prem-rate>5</coverage-prem-rate>
<coverage-prem-date>12-03-15</coverage-prem-date>
</coverage>
<coverage>
<coverage-prem-amt>75</coverage-prem-amt>
<coverage-prem-rate>7</coverage-prem-rate>
<coverage-prem-date>3-05-15</coverage-prem-date>
</coverage>
<coverages>
总是会有'premum-amt','prem每个'ed-Cover'的XML中存在“ium-rate”和“prem-date”? –
高蒂姆它是可选的,只有当它存在时,我需要创建覆盖预置安置,覆盖预置率和覆盖预置日期和映射它。还请注意元素premum-amt,premium-rate和预约日期不在ed-Cover内。 – Ravi