7
看來屬性值的類型是Seq[Node]
。Scala XML API:爲什麼允許NodeSeq作爲屬性值?
scala> <a b="1"/>.attribute("b")
res11: Option[Seq[scala.xml.Node]] = Some(1)
這意味着您可以將XML分配爲屬性值。
scala> <a b={<z><x/></z>}/>.attribute("b")
res16: Option[Seq[scala.xml.Node]] = Some(<z><x></x></z>)
scala> <a b={<z><x/></z>}/>.attribute("b").map(_ \ "x")
res17: Option[scala.xml.NodeSeq] = Some(<x></x>)
scala> new xml.PrettyPrinter(120, 2).format(<a b={<z><x/></z>}/>)
res19: String = <a b="<z><x></x></z>"></a>
這對我來說似乎很怪異。我從來沒有在現實世界中將XML看作屬性值。爲什麼允許?爲什麼屬性值不是String
類型?