我怎样才能与XSLT的基础上,节点的元素名称的子节点的选择?
例如,考虑XML:
<foo_bar>Keep this.
<foo_who>Keep this, too.
<fu_bar>Don't want this.</fu_bar>
</foo_who>
</foo_bar>
从中我想要的输出:
<foo_bar>Keep this.
<foo_who>Keep this, too.
</foo_who>
</foo_bar>
在这里我要选择要处理那些名字匹配的像一个正则表达式的节点为“foo。*”。
我想我需要一个XSLT模板匹配属性的表达,或应用模板中选择属性表达式,正则表达式适用于该元素的名称。 但也许这离不开像一个声明了一些结构来完成?
任何帮助,将不胜感激。
下面是一些XSL是发现与“富”开始的元素,让你开始。 我不认为正则表达式的功能被添加到XSLT 2.0基于正则表达式在XSLT 2匹配 。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
<xsl:variable name="name" select="local-name()"/>
<xsl:if test="starts-with($name, 'foo')">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
它给出了这样的输出,它似乎有一个额外的换行符。
<foo_bar>Keep this.
<foo_who>Keep this, too.
</foo_who>
</foo_bar>