0

我想使用 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 转换中的这个名称空间问题吗?

4

1 回答 1

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>
于 2013-02-11T10:50:26.067 回答