1

我有以下结构的 xml 文件:

<root>
<paramsToInclude>
    <params id="id1">
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
    </params>

    <params id="id3">
        <param31>val1</param31>
        <param32>val2</param32>
    </params>
</paramsToInclude>

<process>
    <subprocess1>
        <include params="id1"/>
        <query>
            SELECT *
            FROM
            table;
        </query>
    </subprocess2>

    <subprocess1>
        <rule>rule1</rule>
        <rule>rule2</rule>
    </subprocess2>

    <subprocess3>
        <processParam>val1</processParam>
        <include params="id2"/>
        <include params="id3"/>
    </subprocess3>
</process>

我正在使用 jaxb 将此 xml 解析为 java 类。有没有办法用文件开头的值替换过程中的包含?我的意思是,我不想文件被解析,好像它看起来像

<root>
<paramsToInclude>
    <params id="id1">
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
    </params>

    <params id="id3">
        <param31>val1</param31>
        <param32>val2</param32>
    </params>
</paramsToInclude>

<process>
    <subprocess1>
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
        <query>
            SELECT *
            FROM
            table;
        </query>
    </subprocess2>

    <subprocess1>
        <rule>rule1</rule>
        <rule>rule2</rule>
    </subprocess2>

    <subprocess3>
        <processParam>val1</processParam>
        <param11>val1</param11>
        <param12>val2</param12>
        <param13>val3</param13>
        <param14>val4</param14>
        <param31>val1</param31>
        <param32>val2</param32>
    </subprocess3>
</process>

有可能吗?我找到了链接http://thetechietutorials.blogspot.com/2011/08/jaxb-tutorial-part-2-jaxb-with-xinclude.html如何从另一个文件中包含它,但评论说这是不可能的这适用于同一个文件(我知道我可以将它包含在另一个 xml 中,但我认为这不是最好的方法)。我也不想使用 hashMap,因为这样包含的参数将存储在 hashMap 中,而 processParam(来自 subprocess3)将是类变量。有没有办法以某种方式做到这一点?

4

0 回答 0