Xml XPath根据XSL转换的属性多次选择节点
我有一个这样的节点:Xml XPath根据XSL转换的属性多次选择节点,xml,xslt,xpath,Xml,Xslt,Xpath,我有一个这样的节点: <foo my:first="yes" my:second="no">text</foo> 因此,预期结果将是: <bar name="first" value="yes">text</bar> <bar name="second" value="no">text</bar> 文本 文本 我怎样才能做到这一点呢?在我看来,您似乎只是想处理属性节点,例如 <xsl:template match
<foo my:first="yes" my:second="no">text</foo>
因此,预期结果将是:
<bar name="first" value="yes">text</bar>
<bar name="second" value="no">text</bar>
文本
文本
我怎样才能做到这一点呢?在我看来,您似乎只是想处理属性节点,例如
<xsl:template match="*/@my:*">
<bar name="{local-name()}" value="{.}">
<xsl:value-of select=".."/>
</bar>
</xsl:template>
然后
<xsl:template match="*[@my:*]">
<xsl:apply-templates select="@my:*"/>
</xsl:template>
你可能是对的!感谢您的帮助,我将尝试一下。如何在属性模板中选择节点的内部文本?我需要将元素的内容放在条
标记之间。我编辑了第一个模板,因为在我的第一次回答尝试中,我忽略了您也要输出元素内容。
<bar name="first" value="yes">text</bar>
<bar name="second" value="no">text</bar>
<xsl:template match="*/@my:*">
<bar name="{local-name()}" value="{.}">
<xsl:value-of select=".."/>
</bar>
</xsl:template>
<xsl:template match="*[@my:*]">
<xsl:apply-templates select="@my:*"/>
</xsl:template>