如何在Scala中传递命令行参数文件?

时间:2014-07-14 20:48:39

标签: file scala command-line sbt command-line-arguments

到目前为止,我的主要方法是:

def main(args: Array[String]) = {  

val doc: scala.xml.Elem = args(0)

}

然而,当我转到命令并写道:

sbt run text.xml

我得到以下内容:     [error] found:String     [error] required:scala.xml.Elem     [error] val doc:scala.xml.Elem = args(0)

另外,我不是在寻找像scopt这样的解析器,我只想将文件传递给我的代码。

由于

编辑:如果args(0)无法成为scala.xml.Elem那么我将如何将文件传递给我的程序?

4 个答案:

答案 0 :(得分:2)

在我看来,你有类型问题。命令行参数是字符串,但您将其分配给类型为scala.xml.Elem

的doc

看起来你想要更像这样的东西

val doc = XML.loadFile(args(0))

答案 1 :(得分:0)

args(0)是一个String,而不是一个scala.xml.Elem对象。

答案 2 :(得分:0)

您尝试将String分配给scala.xml.Elem元素。您不能只将类型字符串的值赋给scala.xml.Elem。这是你可能正在寻找的:

val doc: scala.xml.Elem = scala.xml.XML.loadFile(args(0))

答案 3 :(得分:0)

您需要解析XML文件:

def main(args: Array[String]) = {  

  val doc: scala.xml.Elem = scala.xml.XML.loadFile(args(0))

}