0
我需要轉換一個XML塊,以便如果節點(在本例中爲「User/ShopId」)爲空 它應該回退到默認值,例如「0」。空節點的缺省值
這是如何用XSLT完成的?
XSLT 1.0
<xsl:template match="/">
<Objects Version="product-0.0.1">
<xsl:apply-templates select='Users/User'/>
</Objects>
</xsl:template>
<xsl:template match="User">
<User>
<xsl:attribute name="Email"><xsl:value-of select="Email"/></xsl:attribute>
<xsl:attribute name="ShopId"><xsl:value-of select="ShopId"/></xsl:attribute>
<xsl:attribute name="ERPCustomer"><xsl:value-of select="ERPCustomer"/></xsl:attribute>
<xsl:attribute name="DisplayName"><xsl:value-of select="DisplayName"/></xsl:attribute>
</User>
</xsl:template>
例如
<Users>
<User>
<Email>[email protected]</Email>
<ShopId>123123</ShopId>
<ERPCustomer>100</ERPCustomer>
<DisplayName>Username</DisplayName>
</User>
<User>
<Email>[email protected]</Email>
<ShopId></ShopId>
<ERPCustomer>100</ERPCustomer>
<DisplayName>Username</DisplayName>
</User>
<Users>
將被改造成
<Objects Version="product-0.0.1">
<User Email="[email protected]" ShopId="123123" ERPCustomer="100" DisplayName="Username"></User>
<User Email="[email protected]" ShopId="0" ERPCustomer="100" DisplayName="Username"></User>
</Objects>
感謝您的反饋意見,我一定會做到這一點。 – user634545
因爲這兩個模板具有相同的默認優先級,您將需要在這兩個模板上顯式的「優先級」值。 –