[英]How to copy just a part of an attribute to the new XML using XSLT 1.0
我只需要复制一个属性的一部分来创建一个新的 XML,我有这个作为输入:
<START>
<LIST>
<PRODUCT name="ELEMENT1.HKL" code="12" >
<SPEC>
<available>yes</available>
</SPEC>
</PRODUCT>
<PRODUCT name="ELEMENT2.HKL" code="14" >
<SPEC>
<available>yes</available>
</SPEC>
</PRODUCT>
</LIST>
</START>
在匹配元素中,我需要复制属性名称,但只是在点之前写的,所以我会有这样的东西:
<?xml version="1.0" encoding="UTF-8"?><START>
<LIST>
<PRODUCT delivery="done" name="ELEMENT1">
<SPEC>
<available>yes</available>
</SPEC>
</PRODUCT>
<PRODUCT code="14" name="ELEMENT2.HKL">
<SPEC>
<available>yes</available>
</SPEC>
</PRODUCT>
</LIST>
</START>
这是我尝试使用的 XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:str="http://exslt.org/strings"
extension-element-prefixes="str">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="PRODUCT/@code[.='12']">
<xsl:attribute name="delivery">done</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="substring-before(., '.')"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
但它不起作用,关于我如何使它起作用的任何想法?
使用substring-before(., '.')
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.