问题标签 [scala-xml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1751 浏览

xml - 如何跟踪 XML 元素的源代码行(位置)?

我认为这个问题可能没有令人满意的答案,但无论如何我都会问它,以防我错过了什么。

基本上,在给定元素实例的情况下,我想找出某个 XML 元素源自的源文档中的哪一行。我希望这只是为了更好地诊断错误消息 - XML 是配置文件的一部分,如果它有问题,我希望能够将错误消息的阅读器指向 XML 文档中的正确位置这样他就可以纠正错误。

我知道标准的 Scala XML 支持可能没有这样的内置功能。毕竟,NodeSeq用这样的信息注释每个实例是很浪费的,而且不是每个 XML 元素甚至都有一个源文档来解析它。在我看来,标准的 Scala XML 解析器丢弃了行信息,后来没有办法检索它。

但是切换到另一个 XML 框架不是一种选择。为了更好的诊断错误消息而“仅”添加另一个库依赖项对我来说似乎不合适。此外,尽管有一些缺点,但我真的很喜欢 XML 的内置模式匹配支持。

我唯一的希望是您可以向我展示一种更改或子类化标准 Scala XML 解析器的方法,以便它生成的节点将使用源代码行的编号进行注释。也许NodeSeq可以为此创建一个特殊的子类。或者也许只能Atom因为NodeSeq太动态而被子类化?我不知道。

无论如何,我的希望几乎为零。我不认为在解析器中有一个地方可以用来改变节点的创建方式,并且在那个地方可以使用行信息。不过,我想知道为什么我以前没有发现这个问题。如果这是重复的,请指出原件。

0 投票
2 回答
6636 浏览

xml - 在scala中选择节点的所有子元素

我想选择一个名为“a”的节点的第一个子元素。我现在得到的是:

这是相当冗长的。我正在寻找类似的东西:

这在scala中可能吗?

0 投票
2 回答
431 浏览

scala - Scala程序中的ArrayIndexOutofBoundException使用VTD-XML


我已经导入了 VTD-XML 库它编译得很好但是在执行时会打印一个异常

我已经解决了代码中的while问题。但问题是我总是得到-1ap.evalXPAth

0 投票
1 回答
1190 浏览

xml - Scala XML拉解析器和位置

我被要求编写一个实用程序来搜索大量 XML 文件中缺少属性的元素。负责部门不能只在 DTD 中强制属性,因为它会破坏数百个文件。他们希望在几天/几周内手动编辑它们。

我正在 Scala 2.8.1 中编写一个小型命令行工具。我将使用“拉式”解析器,这样我就可以保持我的代码功能性编程纯粹并多线程运行它。

我需要 XML 事件的位置。Java 6 ( javax.xml.stream. XMLStreamReader) 中提供的 API 有一个方法 ( getLocation()),它返回事件的行号。我可以使用它来编写消息,通知用户在哪里寻找缺失的属性。

我更喜欢在 中使用拉解析器scala.xml.pull.XMLEventReader,但它似乎不提供位置信息。

我错过了什么吗?它在 Scala API 的其他地方吗?

0 投票
1 回答
488 浏览

xml - scala.xml.PrettyPrinter 在没有文本时格式化较短的节点

我使用 scala.xml.PrettyPrinter 在 Scala 中格式化我的 XML。问题在于没有文本内容的节点。而不是这个:

我更喜欢这个:

我怎样才能让 PrettyPrinter 以我的方式格式化它?

0 投票
1 回答
160 浏览

xml - 如何在 scala 中创建有序的 xml 元素?

这对我来说似乎是错误的 - 为什么元素的顺序与它们的构建顺序不同?

0 投票
2 回答
739 浏览

xml - 如何将 scala Xml 元素列表转换为单个 scala 元素?

所以我有

我想写类似的东西

0 投票
2 回答
1380 浏览

scala - 使用 scala.xml.pull 提取节点及其所有子节点的最佳方法?

我正在使用 scala.xml.pull 来解析一个不同的大型 xml 文件。这对事件处理很有用,但我想做的是让我的解析器为特定节点咳出一个迷你文档,我看不到这样做的简单方法,或者至少不是“scala”方式。

我在想我构建了一个像这样的 seek 函数,它可以使用迭代器来查找与我的标签匹配的 EvElemStart 事件:

之后我就不太清楚了。有没有一种简单的方法可以将此标记的所有子项抓取到文档中,而不必遍历 XMLEventReader 弹出的每个事件?

我最终要寻找的是一个扫描文件并为我可以使用正常的scala xml处理处理的特定标签或标签集的每个实例发出一个xml元素(一个Elem?)的过程。

0 投票
2 回答
630 浏览

scala - 如何在 scala XML 解析中处理 nil?

我有一个代表我需要解析并保存在数据库中的模型的 XML 文档。在某些字段中,它可能具有由 xsi:nil 指示的 NULL 值。像这样

对于解析,我使用 scala.xml DSL。问题是我找不到任何方法来确定某事是否为零。这: (elem \ "quantity") 只是返回一个空字符串,然后当我尝试将其转换为数字时它会爆炸。用 Option 包装也无济于事。

有没有办法从那个 XML 片段中获取 None、Nil 甚至 null?

0 投票
2 回答
2721 浏览

scala - Scala 中 CDATA 中的变量

有没有办法将要扩展的变量放在scala的cdata部分中