Используя javax.xml.xpath. с scala.xml - PullRequest
4 голосов
/ 30 августа 2011

Можно ли использовать javax.xml.xpath.XPathExpression s с scala.xml.NodeSeq s?

Я бы хотел API, который позволяет мне выражать что-то вроде:

val xml = ...
val xpath = XPathFactory.newInstance.newXPath.compile(
    """/this/that/theOther[@abc="123"]""")
val selectedNodes: NodeSeq = xml.applyXpath(xpath)

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Scala использует функциональный подход к поиску через XML.В тех же случаях это не так ясно, как XPath и требует некоторого привыкания к нему.Например:

scala> val myXml = <books><book category="1">first</book><book category="2">second</book><book category="1">third</book></books>
myXml: scala.xml.Elem = <books><book category="1">first</book><book category="2">second</book><book category="1">third</book></books>

scala> (myXml \ "book").filter { node => (node \\ "@category").text == "1" }
res24: scala.xml.NodeSeq = NodeSeq(<book category="1">first</book>, <book category="1">third</book>)
1 голос
/ 06 ноября 2011

Это абсолютное требование, чтобы его Scala XML и javax.xml.xpath?Или, что вы предпочитаете использовать XPath на основе строк в Scala.

Scales Xml добавил использование XPath на основе строк (а также более быстрый внутренний синтаксис), но я еще не решилимеет смысл предоставить реализацию javax.xml.xpath.

Если это что-то полезное для людей, я бы подумал потратить больше времени на его реализацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...