-
Notifications
You must be signed in to change notification settings - Fork 91
Closed
Labels
Milestone
Description
Stackoverflow question raises a fair concern that the documentation for \ is ambiguous.
Currently, the doc for \ reads:
Projection function, which returns elements of
thissequence based
on the stringthat. Use:
this \ "foo"to get a list of all elements that are labelled with"foo";\ "_"to get a list of all elements (wildcard);ns \ "@foo"to get the unprefixed attribute"foo";ns \ "@{uri}foo"to get the prefixed attribute"pre:foo"whose prefix"pre"is resolved to the namespace"uri".
The original poster, raised the following examples:
scala> <b>foo</b> \ "b"
res0: scala.xml.NodeSeq = NodeSeq()
scala> <b>foo</b> \\ "b"
res1: scala.xml.NodeSeq = NodeSeq(b)
The confusion is that element searches with \ only operate on the current element's children, while \\ operates on the self, as well.
Additionally, it's worth pointing out that putting @ in the search will find attributes on the current element, and not its children.
scala> <b a="c">foo</b> \ "@a"
res2: scala.xml.NodeSeq = c