当根元素具有默认命名空间属性而不是没有默认命名空间属性时,我遇到了 xslt 行为的特殊差异。
我想知道为什么会出现这种差异。
XML 输入是
<root>
<content>xxx</content>
</root>
应用以下变换时
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<root>
<xsl:apply-templates/>
</root>
</xsl:template>
<xsl:template match="content">
<w>x</w>
</xsl:template>
</xsl:stylesheet>
结果是预期的
<?xml version="1.0" encoding="UTF-8"?>
<root>
<w>x</w>
</root>
但是当同样的变换应用于
<root xmlns="http://test.com">
<content>xxx</content>
</root>
结果是不同的,并且仅基于默认模板的应用(有效地输出文本节点值'xxx'):
<?xml version="1.0" encoding="UTF-8"?>
<root>xxx</root>
添加
如果这是这种情况下的预期行为,那么需要什么 match 属性值来匹配content
第二种情况下的元素?