gpt4 book ai didi

xml - 如何在 Scala XML 输出中生成整数文字作为属性?

转载 作者:数据小太阳 更新时间:2023-10-29 02:27:51 25 4
gpt4 key购买 nike

我希望以下代码生成具有以下内容的 XML 值:

<TestInteger value="10"/>

编译器报错

scala> import scala.xml._
import scala.xml._
scala> val x:Int = 10
x: Int = 10
scala> <TestInteger value={x}/>
<console>:8: error: overloaded method constructor UnprefixedAttribute with alternatives (String,Option[Seq[scala.xml.Node]],scala.xml.MetaData)scala.xml.UnprefixedAttribute <and> (String,String,scala.xml.MetaData)scala.xml.UnprefixedAttribute <and> (String,Seq[scala.xml.Node],scala.xml.MetaData)scala.xml.UnprefixedAttribute cannot be applied to (java.lang.String,Int,scala.xml.MetaData)
<TestInteger value={x}/>

我做错了什么? XML 中是否允许整数文字?

我正在使用 Scala 2.7.7

最佳答案

根据 this,您的 XML 似乎违反了 XML 规范每个属性值必须以双引号开头。请参阅 AttValue 规则。
编辑:
经过一番谷歌搜索后,似乎 scala.xml.UnprefixedAttribute具有仅支持字符串作为值的构造函数,因此由于没有从 Int 到 String 的内置隐式转换,因此您的这段代码将无法像代码一样工作:

val a : String = 10

Scala 现在不会自动将整数转换为字符串,但是下面的代码会起作用

implicit def intToString(i:Int) = i.toString  
val a : Int = 10
val b = <Test attr={a}/>

关于xml - 如何在 Scala XML 输出中生成整数文字作为属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com