使用XSLT以XML格式获取标记名称/属性名称

ahl*_*412 8 xml tags xslt

在XML中获取标记名称和属性名称的方法是什么?

如果我有这样的XML文件:

<a>
<apple color="red"/>
<banana color="yellow"/>
<sugar taste="sweet"/>
<cat size="small"/>
</a>
Run Code Online (Sandbox Code Playgroud)

我的部分XSLT文件如下:

<xsl:element name="AAA">
<???>
</xsl:element>
Run Code Online (Sandbox Code Playgroud)

那么我应该在???零件中写什么,这样我就能得到这样的输出:

对于标签名称:

<AAA>apple</AAA>
<AAA>banana</AAA>
<AAA>sugar</AAA>
<AAA>cat</AAA>
Run Code Online (Sandbox Code Playgroud)

对于属性名称:

<AAA>color</AAA>
<AAA>color</AAA>
<AAA>taste</AAA>
<AAA>size</AAA>
Run Code Online (Sandbox Code Playgroud)

Luk*_*der 13

标签名称:

<xsl:value-of select="name(.)"/>
Run Code Online (Sandbox Code Playgroud)

第一个(!)属性的属性名称.如果您有更多属性,则必须选择其他方法

<xsl:value-of select="name(@*[1])"/>
Run Code Online (Sandbox Code Playgroud)

然后,这两个表达式将用于与输入元素匹配的模板中.例如

<xsl:template match="*">
  <xsl:element name="AAA">
    <!-- ... -->
  </xsl:element>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)