scala实现xml配置


scala实现xml配置

xml如下:

<Config>
	<Param>
		<Name>root</Name>
		<Item>
			<Name>config</Name>
			<Value>ALLAUTO</Value>
		</Item>
	</Param>
</Config>

scala代码如下:

package com.dic.ocs.scala

object Config {

  val config: Map[String, Map[String, String]] = (xml.XML.loadFile("Config.xml") \ "Param").iterator.toList.map((t: scala.xml.Node) => {
    ((t \ "Name").text, (t \ "Item").iterator.toList.map((t2: scala.xml.Node) => {
      ((t2 \ "Name").text, (t2 \ "Value").text)
    }).toMap)
  }).toMap

  def getValue(seq: String*): Option[String] = {
    if (seq.length <= 1) {
      None
    } else {
      seq.tail.foldLeft[Option[String]](Some(seq.head))((x: Option[String], y: String) => {
        x match {
          case Some(v) => config.get(v).getOrElse(Map[String, String]()).get(y)
          case None => None
        }
      })
    }
  }

  def getItems(x: String): Option[Map[String, String]] = config.get(x)

  override def toString =
    "config" + "=" + config + "\n"
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值