Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML创建-错误:重载的方法构造函数UnfixedAttribute带有替代项_Xml_Scala - Fatal编程技术网

XML创建-错误:重载的方法构造函数UnfixedAttribute带有替代项

XML创建-错误:重载的方法构造函数UnfixedAttribute带有替代项,xml,scala,Xml,Scala,将其放入XML属性会产生错误: scala> val count = 7 count: Int = 7 scala> val seven = new Size(7, Units.COUNT) seven: Size = 7.0 count scala>val x= :8:错误:重载的方法构造函数UnfixedAttribute带有替代项: (key:String,value:Option[Seq[scala.xml.Node]],next:scala.xml.MetaData)s

将其放入XML属性会产生错误:

scala> val count = 7
count: Int = 7
scala> val seven = new Size(7, Units.COUNT)
seven: Size = 7.0 count
scala>val x=
:8:错误:重载的方法构造函数UnfixedAttribute带有替代项:
(key:String,value:Option[Seq[scala.xml.Node]],next:scala.xml.MetaData)scala.xml.unfixedattribute
(key:String,value:String,next:scala.xml.MetaData)scala.xml.unfixedattribute
(key:String,value:Seq[scala.xml.Node],next1:scala.xml.MetaData)scala.xml.unfixedattribute
无法应用于(java.lang.String、Int、scala.xml.MetaData)
val x=

XML属性的输入必须是字符串。整数和对象不会使用其toString方法自动转换为字符串。 例如,如果使用单位枚举定义大小类:

scala> val x = <element count={count}/>
<console>:8: error: overloaded method constructor UnprefixedAttribute with alternatives:
  (key: String,value: Option[Seq[scala.xml.Node]],next: scala.xml.MetaData)scala.xml.UnprefixedAttribute <and>
  (key: String,value: String,next: scala.xml.MetaData)scala.xml.UnprefixedAttribute <and>
  (key: String,value: Seq[scala.xml.Node],next1: scala.xml.MetaData)scala.xml.UnprefixedAttribute
 cannot be applied to (java.lang.String, Int, scala.xml.MetaData)
       val x = <element count={count}/>
已创建大小为的实例:

scala> object Units extends Enumeration {
     |   type Units = Value
     |   val COUNT = Value("count")
     |   val LB = Value("pounds")
     |   val OZ = Value("ounces")
     |   val GRAM = Value("grams")
     |   val KG = Value("kilograms")
     |   val GAL = Value("gallons")
     |   val QT = Value("quarts")
     |   val PINT = Value("pints")
     |   val FL_OZ = Value("fluid ounces")
     |   val L = Value("liters")
     | }
defined module Units


scala> class Size(val value: Double, val unit: Units.Units) {
     | override def toString = value + " " + unit.toString
     | }
defined class Size
然后尝试将您的大小放入XML属性中,仍然会出现错误:

scala> val count = 7
count: Int = 7
scala> val seven = new Size(7, Units.COUNT)
seven: Size = 7.0 count
scala>val x=
:10:错误:重载的方法构造函数UnfixedAttribute带有替代项:
(key:String,value:Option[Seq[scala.xml.Node]],next:scala.xml.MetaData)scala.xml.unfixedattribute
(key:String,value:String,next:scala.xml.MetaData)scala.xml.unfixedattribute
(key:String,value:Seq[scala.xml.Node],next1:scala.xml.MetaData)scala.xml.unfixedattribute
无法应用于(java.lang.String、Size、scala.xml.MetaData)
val x=
^
必须显式调用toString方法。这项工作:

scala> val x = <element size={seven}/>
<console>:10: error: overloaded method constructor UnprefixedAttribute with alternatives:
  (key: String,value: Option[Seq[scala.xml.Node]],next: scala.xml.MetaData)scala.xml.UnprefixedAttribute <and>
  (key: String,value: String,next: scala.xml.MetaData)scala.xml.UnprefixedAttribute <and>
  (key: String,value: Seq[scala.xml.Node],next1: scala.xml.MetaData)scala.xml.UnprefixedAttribute
 cannot be applied to (java.lang.String, Size, scala.xml.MetaData)
       val x = <element size={seven}/>
                ^
scala>val x=
x:scala.xml.Elem=