Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中应用XSLT在XML输出中获取输入XML标记名称_Java_Xml_Xslt - Fatal编程技术网

在java中应用XSLT在XML输出中获取输入XML标记名称

在java中应用XSLT在XML输出中获取输入XML标记名称,java,xml,xslt,Java,Xml,Xslt,我是xslt新手 我想要的是通过应用xslt从输入xml中获取标记名,并将输出保存在output.xml中 我的input.xml是- <?xml version="1.0" encoding="UTF-8"?> <productDetails> <name>Mobile</name> <price>999</price> <stock>57</stock> </productDetails&g

我是xslt新手

我想要的是通过应用xslt从输入xml中获取标记名,并将输出保存在output.xml中

我的input.xml是-

<?xml version="1.0" encoding="UTF-8"?>
<productDetails>
<name>Mobile</name>
<price>999</price>
<stock>57</stock>
</productDetails>
输出我想要的是-

<?xml version="1.0" encoding="UTF-8"?>
 name
 price
 stock

名称
价格
股票
请任何人帮忙

提前谢谢。

写一个模板

<xsl:template match="*">
  <xsl:value-of select="name()"/>
</xsl:template>

如果要输出输入中所有元素的名称。如果只需要叶元素的名称,请使用

<xsl:template match="*[not(*)]">
  <xsl:value-of select="name()"/>
</xsl:template>


您可能需要或希望添加空白,以便更好地格式化结果。并不是说您想要一个XML结果,但是您在主级别使用纯文本节点显示的结果示例并不是一个格式良好的XML文档。但是,XSLT允许输出这样的片段,因此如果您希望使用这种格式,我的建议应该这样做。

那么您当前得到的输出是什么?当前我得到的错误是-您不能调用属性“name()'无法编译样式表非常感谢您的帮助。是的,我想要一个XML输出。XML文档不允许包含数据的顶级文本节点,因此您需要添加一个模板来输出根元素,例如,
<xsl:template match="*">
  <xsl:value-of select="name()"/>
</xsl:template>
<xsl:template match="*[not(*)]">
  <xsl:value-of select="name()"/>
</xsl:template>