【发布时间】:2018-04-19 00:59:54
【问题描述】:
我有一个格式为
的xml<ModelAttrib>
<ModelAttribData>
<ID>5</ID>
<AttributeID>1</AttributeID>
</ModelAttribData>
<Attribute>
<AttributeData>
<ID>1</ID>
<AttribVariation>
<AttribVariationData>
<ID>2</ID>
<AttributeID>1</AttributeID>
<ModelAttribVar>
<ModelAttribVarData>
<ID>3</ID>
<AttribVariationID>2</AttribVariation>
</ModelAttribVarData>
</ModelAttribVar>
</AttribVariationData>
</AttribVariation>
<AttribVariation>
<AttribVariationData>
<ID>9</ID>
<AttributeID>1</AttributeID>
<ModelAttribVar>
<ModelAttribVarData>
<ID>10</ID>
<AttribVariationID>9</AttribVariation>
</ModelAttribVarData>
</ModelAttribVar>
</AttribVariationData>
</AttribVariation>
</AttributeData>
</Attribute>
</ModelAttrib>
我想把它转换成
<FeatureProduct>
<ID>1</ID>
<FeatureOptProduct>
<ID>3</ID>
</FeatureOptProduct>
<FeatureOptProduct>
<ID>9</ID>
</FeatureOptProduct>
</FeatureProduct>
基本上,FeatureProduct 节点映射到 Attribute,而 FeatureOptProduct 映射到 AttribVariation。而且我有多个这样的 ModelAttrib 节点,我想将它映射到第二种 xml 格式。 到目前为止,我的代码看起来像这样
<xsl:template match = "/">
<PolicyProduct>
<ProductCode>
<xsl:value-of select = "//ProdModelData/Code"/>
</ProductCode>
<PlanName>
<xsl:value-of select = "//ProdModelData/Description"/>
</PlanName>
<LineOfBusiness>Annuity</LineOfBusiness>
<AnnuityProduct>
<xsl:for-each select= "//ModelAttrib/Attribute/AttributeData">
<FeatureProduct>
<ID>
<xsl:value-of select="ID" />
</ID>
<Name>
<xsl:value-of select="Description"/>
</Name>
</FeatureProduct>
</xsl:for-each>
</AnnuityProduct>
</PolicyProduct>
</xsl:template>
但是我被困在如何以
的形式获取属性标签下的所有属性<FeatureProduct>
<FeatureOptProduct>
<ID></ID>
</FeaturOptProduct>
<FeatureOptProduct>
<ID></ID>
</FeatureOptProduct>
</FeatureOptProduct>
【问题讨论】: