XSLT将属性添加到已处理的节点
这是示例xml:XSLT将属性添加到已处理的节点,xslt,saxon,Xslt,Saxon,这是示例xml: <?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd
http://www.liquibase.org/xml/ns/dbchangelog">
<changeSet id="1" author="a">
<createTable tableName="TABLE1">
<column>
</column>
</createTable>
</changeSet>
<changeSet id="1-1" author="a">
<createSequence sequenceName="SEQ_TABLE1" />
</changeSet>
<changeSet id="4" author="A">
<createTable tableName="TABLE4">
<column>
</column>
</createTable>
</changeSet>
</databaseChangeLog>
并将
替换为
,然后输出文件核心变更日志.xml
正常,但文件未匹配的变更变更日志.xml
没有任何元素
我使用的是xslt 2.0和saxon 9.8he。当我运行它时,我在core-changelog.xml中得到了变更集1和1-1,在unmatched-changelog.xml中得到了变更集4 如果您在无与伦比的变更日志中仍然没有看到任何内容,那么我们需要更详细地了解您是如何运行它的 顺便提一下,不匹配元素的选择可以如下所示:
select="changeSet except ($coreTablesVariable | $coreSequencesVariable | $coreIndexesVariable |$coreForeignConstraintsVariable |$coreViewsVariable)"/>
您好,这是一个示例项目。在projectroot中,执行mvnspringboot:run,它将处理模板和示例输入,我不打算尝试运行您的代码,因为其中涉及太多的设置。我注意到您使用的是JAXP TransformerHandler,它从未设计用于XSLT 2.0和
xsl:result-document
,无法控制输出文件的去向;但它不应该影响文件的内容。也许您看到的输出文件是错误的。只有一个步骤……用git下载repo并调用mvn spring boot:run
。除了git,您不需要安装任何工具。您可以处理文件的去向…当前它们被移动到项目的根目录。这是两个步骤。这对你们来说是两个步骤,对我来说更多,因为在我的开发机器上运行不受信任的代码之前,我必须非常小心。啊哈,2018年,当存在对saxon和spring boot库的依赖时,这些问题就出现了。真正地那么,我应该为你们准备什么来调查这个问题呢?是否仅使用saxon通过命令行运行它?
<xsl:template match="changeSet" mode="legacy">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:attribute name="context">legacy</xsl:attribute>
<xsl:copy-of select="node()"/>
</xsl:copy>
</xsl:template>
select="changeSet except ($coreTablesVariable | $coreSequencesVariable | $coreIndexesVariable |$coreForeignConstraintsVariable |$coreViewsVariable)"/>