我想使用xslt转换以下xml。 注意:我在输入xml中使用名称spave
输入XML
<?xml version="1.0" encoding="UTF-8"?>
<Roottag xmlns="aaa">
<Employee>
<name>Nimal</name>
</Employee>
<Employee>
<name>Kamal</name>
</Employee>
<Employee>
<name>Sunil</name>
</Employee>
</Roottag>
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//name">
<xsl:element name="person">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
预期输出
<?xml version="1.0" encoding="UTF-8"?>
<person>Nimal</person>
<person>Kamal</person>
<person>Sunil</person>
当前输出
<?xml version="1.0" encoding="UTF-8"?>
Nimal
Kamal
Sunil
任何人都可以帮我解决xslt2.0转换中的这个名称空间问题吗?
答案 0 :(得分:1)
使用XSLT 2.0和XSLT 2.0处理器,您可以使用
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xpath-default-namespace="aaa">
<xsl:template match="name">
<person>
<xsl:value-of select="." />
</person>
</xsl:template>
</xsl:stylesheet>
使用XSLT 1.0处理器
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:df="aaa" exclude-result-prefixes="aaa">
<xsl:template match="df:name">
<person>
<xsl:value-of select="." />
</person>
</xsl:template>
</xsl:stylesheet>