Scala 使用 W3C DOM 解析 XML 文件并读取指定节点值
以下是使用 Scala 中的 W3C DOM 来实现读取 XML 文件功能的代码:
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.xpath.XPathConstants
import javax.xml.xpath.XPathFactory
object XmlReader {
def read(xmlPath: String, defaultValue: String): String = {
val factory = DocumentBuilderFactory.newInstance()
val builder = factory.newDocumentBuilder()
val xml = builder.parse(xmlPath)
val xpathFactory = XPathFactory.newInstance()
val xpath = xpathFactory.newXPath()
val parts = xmlPath.split('\.')
val expression = parts.foldLeft('')((exp, part) => exp + s'/$part')
val node = xpath.evaluate(expression, xml, XPathConstants.NODE)
if (node == null) defaultValue else node.getTextContent.trim
}
}
在上面的代码中,我们首先使用 DocumentBuilderFactory 和 DocumentBuilder 类创建一个 DOM 对象,然后使用 XPathFactory 和 XPath 类来解析 XPath 表达式。接着,我们将输入的 XML 路径按照点号分隔,然后使用 foldLeft 方法将其转换为 XPath 表达式。最后,我们使用 evaluate 方法获取指定路径的节点,并返回其文本内容。如果节点不存在,则返回传入的默认值。
原文地址: https://www.cveoy.top/t/topic/nuAg 著作权归作者所有。请勿转载和采集!