У меня есть какая-то конфигурация Tomcat, которую я пытаюсь автоматизировать, изменяя.Что-то может выглядеть так:
<web-app>
<!-- many other configuration options here... -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!-- many other configuration options here... -->
<web-app>
И я хочу обновить только одно значение, оставив остальные нетронутыми.Итак, я определил файл с такой же структурой, только значение, которое я хочу изменить в нем:
<web-app>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<web-app>
Вот мой XSLT, предоставляющий ему файл обновления в качестве входных данных и файл конфигурации TC "по умолчанию"путь в качестве параметра:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" />
<xsl:param name="tcInputFilePath" />
<xsl:param name="tcInputFile" select="document($tcInputFilePath)" />
<xsl:template match="/">
<xsl:apply-templates select="$tcInputFile/*" />
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
По сути, я хочу получить копию $tcInputFile
с изменениями, внесенными из файла обновления.Я предполагаю, что мне нужен какой-то способ найти тот же путь в файле обновления, что и при обходе файла TC, затем проверить, нет ли у этого пути дочерних узлов, и применить value-of
вместо copy
если так.Я просто не знаю, как выбрать «тот же узел» в другом документе при обходе.Помощь