Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Scala |属性文件+HashMap或XML |在Scala程序的性能方面,使用什么更好?

我是Scala的新手。我正在制作一个TCP服务器,它可以从数据库中读取任意数量的注册客户机(注册的意思是它的条目应该在我的property/XML文件中)。所以,我对使用XML配置文件或属性文件+HashMap感到困惑。这是一个示例代码

XML

<client-config>
        <clients>
                <client1 serviceId="1233" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
                <client2 serviceId="1234" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
        </clients>
</client-config>

加载/读取

val clientConfigXML = XML.loadFile("src/client_Config.xml")
if(clientConfigXML.toString.contains(serviceId)){
    val current_client = "client1"
    val dbURL = clientConfigXML \\"clients" \ current_client \ "@URL"
    val password = clientConfigXML \\"clients" \ current_client \ "@password"
    val username = clientConfigXML \\"clients" \ current_client \ "@username"
    val serviceId = clientConfigXML \\"clients" \ current_client \ "@serviceId"
    println("dbURL ["+dbURL+"] password ["+password+"] username ["+username+"] serviceId ["+serviceId +"]")
  }

我不知道如何检测客户1/2/3。。。n在读它的时候


共 (1) 个答案

  1. # 1 楼答案

    你可以使用标签功能

    范例

    val xml = 
    scala.xml.Utility.trim(<client-config>
      <clients>
        <client1 serviceId="1233" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
        <client2 serviceId="1234" URL="jdbc:oracle:thin:@10.168.2.127:1521:mastera" username="sdp" password="sdp"/>
      </clients>
    </client-config>)
    
    val clientNames = ( xml \\ "clients").head.child.map(_.label)
    
    /* clientNames is  'ArrayBuffer(client1, client2)' */