我将此作为我的输入:
<name>
<n1>nisha</n1>
</name>
<name>
<n1>aisha</n1>
</name>
<name>
<n1>shankar</n1>
</name>
<surname>
iyer
</surname>
我想将此作为我的输出仅用于具有名称标签的元素:
<name>
<n1>nisha</n1>
<n1>aisha</n1>
<n1><shankar</n1>
</name>
答案 0 :(得分:0)
请注意,您的xml文件需要一个根元素,否则无法处理,即:
<names>
<name>
<n1>nisha</n1>
</name>
...
</names>
生成所需输出的简单XSLT样式表是:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/*"> <!-- Or match="/pathToNameElements" -->
<name>
<xsl:apply-templates select="name/n1" />
</name>
</xsl:template>
<xsl:template match="name/n1">
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
答案 1 :(得分:0)
就这么简单:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="name[1]">
<name>
<xsl:copy-of select="/*/name/*"/>
</name>
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
将此转换应用于以下XML文档(提供的文本,更正为格式良好的XML文档):
<people>
<name>
<n1>nisha</n1>
</name>
<name>
<n1>aisha</n1>
</name>
<name>
<n1>shankar</n1>
</name>
<surname>
iyer
</surname>
</people>
生成了想要的结果:
<name>
<n1>nisha</n1>
<n1>aisha</n1>
<n1>shankar</n1>
</name>