鉴于此 XML 数据结构,我有以下问题:
<level1>
<level2ElementTypeA></level2ElementTypeA>
<level2ElementTypeB>
<level3ElementTypeA>String1Ineed<level3ElementTypeB>
</level2ElementTypeB>
...
<level2ElementTypeC>
<level3ElementTypeB attribute1>
<level4ElementTypeA>String2Ineed<level4ElementTypeA>
<level3ElementTypeB>
<level2ElementTypeC>
...
<level2ElementTypeD></level2ElementTypeD>
</level1>
<level1>...</level1>
我需要创建一个实体,其中包含:String1Ineed 和 String2Ineed。
所以每次我遇到一个在attribute1中有某个值的level3ElementTypeB时,我就有了我的String2Ineed。难看的部分是如何获取String1Ineed,它位于当前level2ElementTypeC之上的level2ElementTypeB类型的第一个元素。
我的“命令式”解决方案看起来像我总是保留一个带有 String1Ineed 最后一个值的变量,如果我达到 String2Ineed 的标准,我只需使用它。如果我们从一个简单的集合处理的角度来看这个。您将如何对 String1Ineed 和 String2Ineed 之间的回溯逻辑进行建模?使用状态单子?