- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我使用 scala.xml.PrettyPrinter 在 Scala 中格式化我的 XML。问题在于没有文本内容的节点。而不是这个:
<node></node>
我更喜欢这个:
<node />
我怎样才能使 PrettyPrinter 以我的方式格式化它?
最佳答案
这是 scala-xml 中的一个错误,但已在 2018 年 2 月 20 日的 1.1.0 版中修复。新选项 minimizeEmpty
已添加到 PrettyPrinter
.
要使用 1.1.0,请将以下内容添加到您的 build.sbt
:
libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-xml" % "1.1.0"
)
这是一个如何使用 PrettyPrinter
中的新选项的示例:
val pp = new xml.PrettyPrinter(80, 2, minimizeEmpty = true)
val x = <node><leaf></leaf></node>
println(pp.format(x))
这将输出:
<node>
<leaf/>
</node>
如果是 Scala 编译器,会报错:
java.lang.NoSuchMethodError: scala.xml.PrettyPrinter.<init>(IIZ)V
然后你需要在 sbt 中启用一个分支的 JVM,这样 Scala 就可以使用新版本的 scala-xml。只需将以下内容添加到您的 build.sbt
:
fork := true
在 scala-xml 1.1.0 之前,创建 <node/>
的方法, leafTag()
, 在类里面,但未使用。您可以像这样修复它:
import xml._
val p2 = new PrettyPrinter(120, 2) {
override protected def traverse(node:Node, pscope:NamespaceBinding, ind:Int) =
node match {
case n:Elem if n.child.size == 0 => makeBox(ind, leafTag(n))
case _ => super.traverse(node, pscope, ind)
}
}
如果您可以升级到 1.1.0,则没有理由使用 override-hack。
关于xml - scala.xml.PrettyPrinter 在没有文本时格式化较短的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044883/
我以前从未使用过 druapal。所以我需要有关如何执行此操作的具体信息。对于普通页面, pretty-print 是这样工作的:http://google-code-prettify.googlec
我正在从 H 切换到 L import qualified Text.PrettyPrint.HughesPJ as H import qualified Text.PrettyPrint.Leije
我的项目中有一个嵌套字典,它是通过 PrettyPrint 打印的(只需将嵌套字典扔进去即可)。 但是这个嵌套的字典必须被嵌套的 MutableMapping 对象替换,因为我需要覆盖一些 Magic
使用类似的东西: pp = pprint.PrettyPrinter(indent=4, width=...).pprint pp(my_list)的当前输出: [ 1, 2, 3
我正在尝试美化我在 Blogger 中的代码。我已将 Google JS 和 CSS 文件链接到我的模板。问题是我希望代码在页面加载时得到美化,所以我添加了 prettyPrint();在模板上加载页
如何将 Python PrettyPrint 输出存储到某个变量。 除了 eyeD3 还有其他方法吗? 像这样- string_output = pp.pprint(dict) 最佳答案 使用 ppr
我有这个 JavaScript(带有 jQuery): var g_files_added, socket, cookie, database = null; var file_contents
我正在处理 http://twitterbootstrap.org/bootstrap-form-validation/ .除了在表单中各个字段的末尾添加图像外,我已经使项目正常运行。 我的表格看起来
PrettyPrint 很棒,但我遇到了以下问题。 我有一个这样打印的结构: { 'table': { 'tr': [ { 'tr': { 'td': [ {'td': 'Period'},
我的 Javascript 有问题 - $.ajax({ 'url': message.action, 'data': parameterMap, 'cache': true, 'dataT
我在我的博客上使用 Syntax Highlighter 来美化代码。现在我想把它改成 Google Open Source Prettify。 在 Syntax HighLighter 中,我们通过
我正在尝试使用 prettyprint 来格式化我的代码的 UI,但我没有完成任何格式化。 HTML: <div> This is a div </div&
我是 Perl(Windows 7 上的 Strawberry Perl v5.12.3)的新手,试图编写一个脚本来帮助我完成重复的 HTML 格式化任务。这些文件将来需要手动编辑,我希望它们是人性化
出于某种原因,我的下面的代码给出了异常:javax.xml.transform.TransformerConfigurationException:无法编译样式表 public String remo
写入文件时如何使用 pretty-print ? package tests; import java.io.File; import java.io.FileOutputStream; import
我目前正在使用 https://github.com/danielstjules/php-pretty-datetime用于打印我的时间。目前它正在吐出 UTC 时间,因为那是 MYSQL 中的时间。
我正在使用 jackson 2.8.4 并尝试在一个名为 json 的单行字符串中漂亮地打印(即使用缩进很好地格式化)一些 JSON。 我试过了 ObjectMapper mapper = new O
希望您能帮助我解决ReferenceError: PrettyPrint is not Defined。 How do I contact you? One moment... $(document
继续 from this question , 我正在尝试将 [String : Any] 转换为 String,然后将该 String 传递给 forHTTPHeaderField 尝试 1: 没有
我有一个这样的 JSON 字符串 {"menu":{"header":"SVG Viewer","items":[{"id":"Open"}, {"id":"OpenNew","label":"Ope
我是一名优秀的程序员,十分优秀!