如何使用XSLT和ANT设置web.xml context-param的值?

ams*_*ams 1 ant xslt

我正在寻找一个XSLT代码片段,它可以修改一个context-param元素的值,这个元素是典型的web.xml文件.在我的web.xml中,我有以下上下文参数

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>App Name</display-name>
 <context-param>
    <param-name>dojoUrl</param-name>
    <param-value>/dojo/src/1.7.1/dojo/dojo.js</param-value>
 </context-param>
</web-app>
Run Code Online (Sandbox Code Playgroud)

我想要做的是改变生产的上下文参数的值

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>App Name</display-name>
 <context-param>
    <param-name>dojoUrl</param-name>
    <param-value>/dojo/1.7.1/dojo/dojo.js</param-value>
 </context-param>
</web-app>
Run Code Online (Sandbox Code Playgroud)

计划是使用带有XSLT任务的ANT脚本,问题是我不知道XSLT.我只需要在param-name为dojoUrl时才能更改param-value元素

Tom*_*lak 5

<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:w="http://java.sun.com/xml/ns/javaee"
>
  <xsl:output indent="yes" />

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()" />
    </xsl:copy>
  </xsl:template>

  <xsl:template match="w:context-param[w:param-name='dojoUrl']/w:param-value">
    <xsl:copy>/dojo/1.7.1/dojo/dojo.js</xsl:copy>
  </xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

简短说明:

第一个模板将每个XML节点复制到与任何其他模板不匹配的输出(它称为标识模板,如果您感兴趣,请查找它).

第二个模板专门匹配<w:param-value>的儿童<w:context-param>有一个元素w:param-name'dojoUrl'.它输出一个<w:param-value>具有不同路径的新.

  • 无法理解XML名称空间是破产和失败婚姻的头号原因.真实的故事. (3认同)
  • @lwburk哈哈!没有提到问题的完整XML是第二位.:) (2认同)