删除 XSL 样式表标签中的 XSL 命名空间前缀
是否可以将 xsl:
删除到 XSL 样式表中的 XSL 标记?
例如,可以:
<xsl:if test=''>
键入为:
<if test=''>
编辑: 样式表中包含 HTML 和 XML 节点。
谢谢, 罗斯
Is possible to drop the xsl:
to XSL tags in XSL Stylesheets?
For example, could:
<xsl:if test=''>
be typed as:
<if test=''>
Edit:
Stylesheet has HTML and XML nodes within it.
Thanks,
Ross
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
事实上,您可以通过将 XSLT(“http://www.w3.org/1999/XSL/Transform”)名称空间定义为默认名称空间来做到这一点:
缺点是您必须为“域”使用另一个前缀命名空间:
Indeed you can do this, by defining the XSLT ("http://www.w3.org/1999/XSL/Transform") namespace as the default namespace:
The downside is that you then must use another prefix for your "domain" namespaces:
当然可以,但结合 @ysdx 和 @Jon 的答案,请注意您的 XSLT 处理器需要区分 XSLT 元素和输出元素。例如,以下样式表在 Firefox 中引发错误:
这意味着您需要限定输出元素的名称,如下所示:
这可能会出现问题。您应该坚持使用传统的
xsl
前缀,除非您能找到不这样做的充分理由。Sure you can, but combining @ysdx and @Jon's answers, beware that your XSLT processor needs to differentiate between XSLT elements and output elements. For example, the following stylesheet throws an error in Firefox:
Which means you need to qualify the names of output elements, like this:
This can be problematic. You should stick to the conventional
xsl
prefix, unless you can think of a good reason not to.不这么认为。它们区分“语言”和用于输出的任何节点。
Don't think so. They differentiate between the "language" and any nodes that are intended for output.
是的。
但请注意,这与 XSLT 本身无关,而是与 XML 名称有关。这就是 XML 1.0 和 XML 1.1 用法之间存在差异的原因。
例如,这里有我之前使用以下语法的一些答案:
使用 xml 作为xsl 变量
带递归的 XSLT 多字符串替换
Yes.
But do note that this has nothing to do with XSLT itself but with XML Names. That's why there are differences between XML 1.0 and XML 1.1 usage.
As example, here you have some of my previus answers using this syntax:
using xml as xsl variable
XSLT multiple string replacement with recursion