为什么我输出空?当我删除xml中的xmlns部分时,输出是预期的,但是intellisense不再起作用。
warehouse.xml
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="warehouse.xsl"?>
<warehouse xmlns="http://schema.mynamespace.net">
<container>
<item>
<name>book</name>
<value>1.23</value>
</item>
<item>
<name>phone</name>
<value>45.6</value>
</item>
</container>
</warehouse>
warehouse.xsl
<xsl:stylesheet xmlns="http://schema.mynamespace.net" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="warehouse/container" />"
</xsl:template>
<xsl:template match="container">
<xsl:apply-templates />"
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:2)
即使您将某个命名空间指定为XSL的默认命名空间,没有命名空间前缀的 XPaths 也始终位于空命名空间中。你需要做这样的事情:
<xsl:stylesheet xmlns:mns="http://schema.mynamespace.net"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="mns:warehouse/mns:container" />"
</xsl:template>
<xsl:template match="mns:container">
<xsl:apply-templates />"
</xsl:template>
</xsl:stylesheet>