0

我是 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>

我的 input.xsl 是 -

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>

<xsl:template match="/productDetails">
   <xsl:attribute name="name()"/>   
</xsl:template>
</xsl:stylesheet>

我的Java代码是-

   Source xmlInput = new StreamSource("input.xml");
    Source xsl = new StreamSource(new File("input.xsl"));
    Result xmlOutput = new StreamResult(new File("output.xml"));


        Transformer transformer = TransformerFactory.newInstance().newTransformer(xsl);
        transformer.transform(xmlInput, xmlOutput);

输出我想要的是 -

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

请任何人帮助

先感谢您。

4

1 回答 1

1

写一个模板

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

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

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

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

于 2012-11-03T12:45:49.703 回答