你好我想用另一个替换一些提取的字符串的内容(来自之前的atrribute)。 当我在此标记中提取属性时:
<UML:Package href='file.xml|638020a_1071071492996_282832_1598'>
使用此xsl代码:
<package href="{UML:StructuralFeature.type/UML:Classifier/@href}" />
我得到的话:
<package href='file.xml|638020a_1071071492996_282832_1598' />
但我想得到:
<package href='file.uml#638020a_1071071492996_282832_1598' />
任何帮助?
答案 0 :(得分:1)
假设XSLT 1.0,我会这样做:
<package>
<xsl:attribute name="href">
<xsl:variable name="href" select="UML:StructuralFeature.type/UML:Classifier/@href" />
<xsl:value-of select="substring-before($href, '.xml|')"/>
<xsl:text>.uml#</xsl:text>
<xsl:value-of select="substring-after($href, '.xml|')"/>
</xsl:attribute>
</package>
如果需要,可以使用concat()函数将其重写为属性值模板。
注意:您的XSLT会选择UML:StructuralFeature.type/UML:Classifier/@href
,但您的XML代码段会显示名为UML:Package
的元素。这不适合。
答案 1 :(得分:0)