给定此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之间的回溯逻辑建模? 正在使用State Monad?

#1楼 票数:1

这不是XPATH的目的吗? 您可以找到String2Ineed,然后更改轴以向后搜索String1Ineed。

  ask by AndreasScheinert translate from so

未解决问题?本站智能推荐:

2回复

使用函数编程语言处理具有内部状态的外部库的最优雅方法是什么?

我目前正在玩Scala开发,但我需要与诸如box2d之类的库集成来处理物理。 问题是,这需要依赖于管理其自身状态的外部库。 您可以跟踪传递到box2d世界的物体。 总结一下有用的方面: Box2d管理世界中的状态,并在每个滴答/步骤后修改它们 您创建(使用FP)传递到此世
6回复

你把monad里面的数据称为什么?

在演讲和写作中,我一直想要参考monad中的数据,但我不知道该怎么称呼它。 例如,在Scala中,传递给flatMap的函数的参数被绑定到......呃...... monad中的那个东西。 在: x绑定到那个我没有一句话的东西。 稍微复杂一点,传递给Kleisli箭头的参
1回复

有关点菜数据类型的问题

我正在阅读关于数据类型的原始论文,并决定尝试在Scala中实现这个想法(我知道它已经在许多功能库中实现)。 不幸的是,我发现原始论文难以理解,而且我在开始时就陷入了困境。 然后我找到了另一篇更容易理解的论文 ,并设法将Haskell代码从论文重写为Scala,你可以在这里找到它。 但是我仍
8回复

用于文本编辑器的纯功能数据结构

什么是文本编辑器的纯功能数据结构? 我希望能够在文本中插入单个字符并以可接受的效率从文本中删除单个字符,并且我希望能够保留旧版本,因此我可以轻松地撤消更改。 我应该只使用字符串列表并重用不同版本的行吗?
1回复

将类型与数据构造函数关联的ADT编码有什么问题? (如Scala。)

在Scala中,代数数据类型被编码为sealed单级类型层次结构。 例: -- Haskell data Positioning a = Append | AppendIf (a -> Bool) | Expl
4回复

非持久性数据结构能否以纯粹的功能方式使用?

这是关于函数式编程的一般性问题,但我也对它在特定语言中的答案感兴趣。 我只有初学者对功能语言的了解,所以请耐心等待。 我的理解是,函数式语言把重点放在不同于命令式语言的数据结构上,因为它们喜欢不变性: 持久性数据结构 。 例如,它们都有一个不可变列表概念,您可以从现有列表l和两
4回复

是否可以通过O(1)内存使用延迟遍历递归数据结构,尾部调用优化?

假设我们有一个递归数据结构,就像二叉树一样。 有许多方法可以遍历它,它们具有不同的内存使用配置文件。 例如,如果我们只是打印每个节点的值,使用伪代码,如下面的有序遍历... ...我们的内存使用量是常量,但由于递归调用,我们会增加调用堆栈的大小。 在非常大的树上,这可能会溢出它。
2回复

如果数据结构是可折叠的,它是一个幺半群吗?

显然,如果一个数据结构是一个幺半群,它是可折叠的,但如果数据结构是可折叠的,可以说它是一个幺半群吗? https://en.wikibooks.org/wiki/Haskell/Foldable 如果数据结构是可折叠的,它是一个幺半群吗?