这是此问题的后续措施: XSLT: analyze-string on text with children nodes
我试图在可能包含子节点的元素上使用analyst-string。这是源文件的片段:
<year>
1975 music
</year>
<year>
1985<genre>rock</genre>music
</year>
<year>
2005 music
</year>
现在是下一个练习。使用相同的xml输入,我想添加属性:
<year decade="7">
70's music
</year>
<year decade="8">
80's<genre>rock</genre> music
</year>
我需要分析字符串吗? 谢谢!
答案 0 :(得分:0)
您需要添加一个与year
匹配的模板,该模板可以获取包含年份的文本节点,并从中提取相关数字以创建十年
尝试此模板
<xsl:template match="year">
<xsl:variable name="text" select="normalize-space(text()[matches(., $pattern)])" />
<year decade="{replace($text, concat('.*', $pattern, '.*'), '$1')}">
<xsl:apply-templates />
</year>
</xsl:template>