无法在Java中找到转换器以动态替换现有XSLT文件的值,反之亦然

问题描述

有人可以向我提供使用Java对象动态替换现有XSLT文件的值的源代码

XSLT文件:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:apply-templates select="CheckDomainCmd"/>
    </xsl:template>

    <xsl:template match="CheckDomainCmd">
        <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
            <command>
                <check>
                    <domain:check xmlns:domain="http://www.nic.cz/xml/epp/domain-1.4" xsi:schemaLocation="http://www.nic.cz/xml/epp/domain-1.4 domain-1.4.xsd">
                        <domain:name><xsl:value-of select="DomainName"/>.<xsl:value-of select="TLD" /></domain:name>
                    </domain:check>
                </check>
                <clTRID>
                    <xsl:value-of select="RIMTransactionID"/>
                </clTRID>
            </command>
        </epp>
    </xsl:template>
</xsl:stylesheet>

Java对象:

public class checkDomain {

    private String DomainName;
    private String TLD;
    private String RIMTransactionID;
    
    // getters and setters
}

我需要Java / spring中的源代码才能将值动态地放入XSLT select属性。 例如,在java对象中,我们具有以下值,以及如何将java对象值转换为XSLT属性:

public class XSLTConversion {
    
    public static void main(String[] args) {
        CheckDomain checkDomain = new CheckDomain():
        checkDomain.setDomainName("test");
        checkDomain.setTLD("com");
        checkDomain.setRIMTransactionID("qwertyco123456");
        
        replaceValuesToXSLTFile(checkDomain,"checkdomain.xslt");
    }
    public static void replaceValuesToXSLTFile(CheckDomain checkDomain,String fileName) {
        
    }
}

转换后,我需要如下文件内容

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:apply-templates select="CheckDomainCmd"/>
    </xsl:template>

    <xsl:template match="CheckDomainCmd">
        <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
            <command>
                <check>
                    <domain:check xmlns:domain="http://www.nic.cz/xml/epp/domain-1.4" xsi:schemaLocation="http://www.nic.cz/xml/epp/domain-1.4 domain-1.4.xsd">
                        <domain:name><xsl:value-of select="test"/>.<xsl:value-of select="com" /></domain:name>
                    </domain:check>
                </check>
                <clTRID>
                    <xsl:value-of select="qwertyco123456"/>
                </clTRID>
            </command>
        </epp>
    </xsl:template>
</xsl:stylesheet>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)