是否可以在XSL样式表中删除xsl:
到XSL标记?
例如,可以:
<xsl:if test=''>
输入:
<if test=''>
修改 样式表中包含HTML和XML节点。
谢谢, 罗斯
答案 0 :(得分:4)
确实可以通过将XSLT(“http://www.w3.org/1999/XSL/Transform”)命名空间定义为默认命名空间来实现此目的:
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform">
...
</stylesheet>
缺点是您必须为“域”命名空间使用另一个前缀:
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:foo="http://whatever" xmlns:html="http://www.w3.org/1999/xhtml">
<template match="foo:bar">
<html:form>
...
</html:form>
</template>
</stylesheet>
答案 1 :(得分:4)
当然可以,但结合@ysdx和@Jon的答案,请注意您的XSLT处理器需要区分XSLT元素和输出元素。例如,以下样式表在Firefox中引发错误:
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<!-- <b> is not a valid XSLT element -->
<b><value-of select="'test'"/></b>
</template>
</stylesheet>
这意味着您需要限定输出元素的名称,如下所示:
<stylesheet version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform"
xmlns:test="http://whatever">
<template match="/">
<test:b><value-of select="'test'"/></test:b>
</template>
</stylesheet>
这可能有问题。你应该坚持使用传统的xsl
前缀,除非你能想出一个不合理的理由。
答案 2 :(得分:1)
不要这么认为。它们区分“语言”和任何用于输出的节点。
答案 3 :(得分:0)
但请注意,这与XSLT本身无关,而是与XML名称无关。这就是XML 1.0和XML 1.1使用之间存在差异的原因。
例如,在这里,您可以使用以下语法获得一些我的优势答案: