0

鉴于此 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 之间的回溯逻辑进行建模?使用状态单子?

4

1 回答 1

1

这不是 XPATH 的用途吗?您可以找到 String2Ineed,然后更改轴以重新搜索 String1Ineed。

于 2012-10-09T06:54:32.273 回答