【问题标题】:Scala Lift - LiftRules.loadResourceAsXml extract valueScala Lift - LiftRules.loadResourceAsXml 提取值
【发布时间】:2012-07-12 19:52:05
【问题描述】:

我有以下几点:

LiftRules.loadResourceAsXml("/config.xml")

我正在尝试从以下 xml 表中提取值:

<?xml version="1.0" encoding="ISO-8859-1"?>
<config>

    <webroot>/opt/tomcat/webapps/ROOT</webroot>
    <broadcast>

        <quality>

            <primary>15</primary>
            <secondary>2</secondary>

        </quality>

    </broadcast>

</config>

提前感谢您的帮助,非常感谢:)

编辑:添加根标签

【问题讨论】:

  • 您的示例不是有效的 XML。缺少唯一的根标记。
  • 我已经在根标签中添加了,你知道如何访问这些值吗?
  • 你想要这些值的形式是什么?
  • 最好作为 JValue 对象,例如:{key : val, key : val}。谢谢

标签: xml scala lift


【解决方案1】:

这是从该配置中提取主要质量的示例:

val primaryQuality: Int = LiftRules.loadResourceAsXml("/config.xml").map { x =>
    (x \\ "quality" \ "primary" head).text.toInt
} openOr 20

【讨论】:

  • 非常感谢您的帮助,您知道如何将其映射到 JValue 吗?喜欢:.map(_.asJValue)
  • @sirjamm - 试试.map(net.liftweb.json.Xml.toJson)。文档链接:scala-tools.org/mvnsites/liftweb-2.4/#net.liftweb.json.Xml$
  • 非常感谢,我将如何映射广播元素中的值?
  • @sirjamm - .map(_ \\ "broadcast").map(net.liftweb.json.Xml.toJson),也许吧。
  • 非常感谢,唯一的问题是广播值在值字段内,无论如何要删除它。例如,目前我们有:{value:broadcast:{quality:primary:15,secondary:2}}},到:{broadcast:{quality:primary:15,secondary:2}}。
猜你喜欢
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 2011-05-22
  • 2011-11-05
相关资源
最近更新 更多