我正在尝试编写一个简单的Scala函数,以使用XPath表达式从XML文件提取数据。
e.g.
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
<CATALOG>
val file = XML.loadFile(xmlFile)
val extractedData = file / "PLANT" / "COMMON"
当我像上面的两行代码一样在函数中对上面的表达式进行硬编码时,它工作正常。
但是,我想将XPath表达式传递给函数,而不是硬编码
我尝试了以下
val xPath = """PLANT / COMMON"""
val extractedData = file / xPath
它无法正常工作,感谢您的帮助。
请您参考如下方法:
提供XPath as Function应该起作用:
val xPath = (ns:Elem) => ns \ "PLANT" \ "COMMON"
val extractedData = xPath(file)
让我知道是否需要更多说明。


