xml - 如何访问 Scala XML 中的父元素

标签 xml scala

scala.xml 包表示带有标记树节点的 XML。但是在 Scala 2.7 中这棵树是单向的吗,因为似乎没有办法访问给定 ElemElem 父级?这同样适用于父 Document。例如,在 XOM 中,您有 getParentgetDocument 访问器来导航到树的根。这可以用 Scala 的 XML API 完成吗?

最佳答案

正如其他人所提到的,没有父链接可以使它们成为高效的不可变结构。例如:

scala> val a = <parent><children>me</children></parent>
a: scala.xml.Elem = <parent><children>me</children></parent>

scala> val b = a.child(0)
b: scala.xml.Node = <children>me</children>

scala> val c = <newparent>{b}</newparent>
c: scala.xml.Elem = <newparent><children>me</children></newparent>

scala> a
res0: scala.xml.Elem = <parent><children>me</children></parent>

scala> b
res1: scala.xml.Node = <children>me</children>

scala> c
res3: scala.xml.Elem = <newparent><children>me</children></newparent>

没有复制数据结构。 b 指向的节点与 ac 指向的节点完全相同。如果它必须指向父级,那么在 c 中使用它时就必须复制它。

要以您想要的方式在该数据结构中导航,您需要所谓的纯应用 XML 游标。

关于xml - 如何访问 Scala XML 中的父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582244/

相关文章:

java - ImageView.setImageResource 返回 NullPointerException

scala - 当我在其他文件夹中构建它的精确副本时,为什么要重新编译原始 scala sbt 项目?

scala - 为什么我的伴生对象无法访问其伴生类中的方法

function - 这两种结构之间的根本区别是什么?

Scala akka http 服务器 - 打印 POST 消息

c# - 在 C# 中遍历 XML 树

java - 从 Java 中的 XML 中删除命名空间

python-3.x - 如何从服务器端的字符串中使用Elementtree XML解析?

XML 验证 : "No Child Element Is Expected At This Point"

java - 用 Java 包装 Lua API