提供xml标头时,xsl模板匹配不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提供xml标头时,xsl模板匹配不起作用相关的知识,希望对你有一定的参考价值。

我尝试根据本网站上的解释创建合并2 web.xml,但我遇到了问题。

如果我的输入文件以简单的标题开头,如下所述,一切正常。

<?xml version="1.0" encoding="UTF-8"?>
<web-app> <!-- no schema information here -->
   <servlet id="identifier">
      ...
   </servlet>
</web-app>

但是,如果我使用这样的输入文件,匹配不起作用

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

   <servlet id="identifier">
      ...
   </servlet>
</web-app>

我使用的xsl模板匹配就是这个。

<xsl:template name="main" match="/web-app/servlet[@id='identifier']">

你有什么问题吗?

谢谢你的帮助。

编辑:我正在使用撒克逊人8.7

答案

Saxon 8.7是一个XSLT 2.0处理器,所以你应该能够包括:

xpath-default-namespace="http://xmlns.jcp.org/xml/ns/javaee"

在你的xsl:stylesheet开放标记中,使你的模板的match表达式(和你所有的其他XPath表达式)解决XML的元素 - 请参阅:https://www.w3.org/TR/xslt20/#unprefixed-qnames

以上是关于提供xml标头时,xsl模板匹配不起作用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 片段在 Django 模板中不起作用

xml 附加 xsl 并放入 html 为啥它不起作用?

XSL xsl:模板匹配="/"

选择字段元素时不确定 XSLT 文档中的当前路径

XSL应用模板也适用于不匹配的元素[重复]

twitter bootstrap 下拉菜单在 django 模板中不起作用