Xml 如何正确地将scala XPath作为命令参数并使用它?
我有一个非常简单的示例xml文件Xml 如何正确地将scala XPath作为命令参数并使用它?,xml,scala,xpath,Xml,Scala,Xpath,我有一个非常简单的示例xml文件 <?xml version="1.0"?> <root> <Preferences> <test attr="cookies"/> <test attr="cookies"/> </Preferences> <Present> <test2 attr="cake"/> </Present> </root> 第一个打印行不产生任何结果,第二个打
<?xml version="1.0"?>
<root>
<Preferences>
<test attr="cookies"/>
<test attr="cookies"/>
</Preferences>
<Present>
<test2 attr="cake"/>
</Present>
</root>
第一个打印行不产生任何结果,第二个打印行将其追加到所有xml的末尾
调用此选项时,会将-x选项作为
“\\\Preferences”
发送,以遵循scala x路径语法并避开bash约束。我认为这不是一件小事,但其他人可能会回答相反的问题。由于Scala是基于Java构建的,请看一看
给定的解决方案提供了一种方法,使其对Scala更友好。可能的重复
class CommandLineOptions(args: Array[String]) extends ScallopConf(args){
banner("XML Tool to Modify Attributes in an XML file")
val filename = opt[String]("filename", short = 'f', descr = "XML filename" , required = true)
val xPath = opt[String]("xpath", short = 'x', descr = "XML Xpath" , required = true)
}
def main (args: Array[String]) {
val opts = new CommandLineOptions(args)
val xml=XML.loadFile(opts.filename())
println(xml\opts.xPath())
println(xml + opts.xPath())
}