我是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
请任何人帮忙
提前谢谢。
答案 0 :(得分: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允许输出这样的片段,所以如果你希望我的建议应该这样做。