我需要XSL,可以做以下事情: -
我的第一个要求是使用这个xsl: -
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" version="1.0" encoding="UTF-8"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[not(normalize-space(.))]">
<xsl:if test="descendant::*/@*[not(normalize-space(.))]">
<xsl:copy />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
输入你可以假设: -
<Input BlankAttribute="" HeightUOM="IN" Height="1" WidthUOM="IN" WIdth="2" RandomAttribute="random"/>
答案 0 :(得分:0)
如果您使用
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[not(normalize-space(.))]"/>
<xsl:template match="@*[contains(local-name(), 'UOM') and . = 'IN']">
<xsl:attribute name="{name()}" namespace="{namespace-uri()}">FEET</xsl:attribute>
</xsl:template>
<xsl:template match="@*[contains(local-name(), 'Height') or contains(local-name(), 'Width') or contains(local-name(), 'Length')]">
<xsl:attribute name="{name()}" namespace="{namespace-uri()}">
<xsl:value-of select=". * 0.83"/>
</xsl:attribute>
</xsl:template>
</xsl:transform>
然后我认为您的所有条件都已实施,在线样本位于http://xsltransform.net/3NJ38Z4