Skip to main content
 首页 » 编程设计

xml之在Scala中评估Xpath

2025年05月04日101tintown

我正在尝试编写一个简单的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) 


让我知道是否需要更多说明。