Java-如何用无休止的递归结构解析XML?

Java-如何用无休止的递归结构解析XML?,java,xml,parsing,recursion,xml-parsing,Java,Xml,Parsing,Recursion,Xml Parsing,我有一个关于xml解析的问题 我想开发一个Java DOM解析器(或Java中的任何其他解析器),能够解析具有如下结构的xml: <root> <parameters> <parameter> <!-- ParameterA --> <name>a</name> <values> <!-- possible values for Par

我有一个关于xml解析的问题

我想开发一个Java DOM解析器(或Java中的任何其他解析器),能够解析具有如下结构的xml:

<root>
    <parameters>
        <parameter> <!-- ParameterA -->
            <name>a</name>
            <values> <!-- possible values for ParameterA -->
                <value>
                    <name>a1</name>
                    <parameter> <!-- ParameterB dependent of ParameterA -->
                        <name>a11</name>
                        <values> <!--possible values for ParameterB -->
                            <value>
                                <name>a111</name>
                            </value>
                            <value>
                                <name>a112</name>
                            </value>
                        </values>
                    </parameter>
                </value>
                <value>
                    <name>a2</name>
                    <parameter> <!-- ParameterC dependent of ParameterA -->
                        <name>a22</name>
                        <values> <!--possible values for ParameterC -->
                            <value>
                                <name>a222</name>
                            </value>
                        </values>
                    </parameter>
                </value>
            </values>
        </parameter>
        <parameter> <!-- ParameterX -->
            <name>b</name>
            <values> <!-- possible values for ParameterX -->
                <value>
                    <name>b1</name>
                </value>
            </values>
        </parameter>
    </parameters>
</root>
我不知道这是否可能,我已经为此敲了我的头好几天了

谢谢,


请不要保留建议。

您有一个递归的数据结构,因此显而易见的方法是使您的DOM“解析器”也递归。事实上,如果使用基于DOM的提取器,您没有真正的选择

然而,我认为你的问题在于你试图同时做两件事,它们是:

  • 查找每个参数的所有可能值
  • 形成这些值的所有可能组合的集合

如果您分别执行这两项任务,则编写代码会更容易。

您尝试过什么吗?如果是,你试过什么
>> a-a1-a11-a111-b-b1
>> a-a1-a11-a112-b-b1
>> a-a2-a22-a222-b-b1