Scala XML:Descendant vs Child

时间:2011-01-06 23:30:10

标签: xml scala

Node.descendant和Node.child之间有什么区别?

scala> val n = <a b="c">d</a>.asInstanceOf[xml.Node]
n: scala.xml.Node = <a b="c">d</a>

scala> n.descendant
res22: List[scala.xml.Node] = List(d)

scala> n.child
res23: Seq[scala.xml.Node] = ArrayBuffer(d)

我想也许它对其他元素类型的行为有所不同。但是Text也是如此。

scala> val t = n.child.head.asInstanceOf[xml.Text]
t: scala.xml.Text = d

scala> t.descendant
res24: List[scala.xml.Node] = List()

scala> t.child
res25: object Nil = List()

1 个答案:

答案 0 :(得分:3)

通常,XML术语中的后代将包括一个孩子或一个孩子(孩子的孩子,等等);而child只是一个直接的子元素(元素直接包含在父元素中)。