我的输入是这样的:
<name>
<n1>nisha</n1>
</name>
<name>
<n1>aisha</n1>
</name>
<name>
<n1>shankar</n1>
</name>
<surname>
iyer
</surname>我希望这只作为带有name标记的元素的输出:
<name>
<n1>nisha</n1>
<n1>aisha</n1>
<n1><shankar</n1>
</name>发布于 2016-11-25 19:58:13
请注意,您的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>发布于 2016-11-26 01:31:59
像这个一样简单的
<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>https://stackoverflow.com/questions/40802770
复制相似问题