问题标签 [xmlslurper]

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 投票
1 回答
17187 浏览

file - 如何在 groovy 中读取 XML 文件?

我正在尝试使用以下代码行以 groovy 读取 XML 文件

尽管我的 C 驱动器中有文件,但我收到文件未找到错误..那里有任何语法错误吗?..

预先感谢,

拉克西米

0 投票
1 回答
599 浏览

groovy - 我可以直接在 w3c.dom.Node 对象上使用 XmlSlurper

我正在试验 GroovyWS,希望能完全替换 Axis2 客户端代码。

我调用的 Web 服务操作之一返回 XML 片段,我需要将其转换为 Groovy Bean。

我收到了com.sun.org.apache.xerces.internal.dom.ElementNSImpl来自 WebService 调用的实例。

我可以调用new XmlSlurper().parseText(it as String)whereit的实例ElementNSImpl

但是,这当然会在重新解析和 slurping 之前将元素写入字符串。有没有办法避免这个不必要的步骤?

最终我想把 slurped 对象变成 Groovy Bean;有一个更好的方法吗。我想知道 DomToGroovy,但这仍然给了我一个字符串,然后我在 Groovy Shell 中运行了它。

0 投票
2 回答
1308 浏览

xml - XmlSlurper.appendNode 不改变大小

我使用 XmlSlurper 处理 XML。在我更新它之前它工作正常。appendNode 不反映大小。

结构更新后如何使用 XmlSlurper?

XML 定义:

代码女巫失败:

打印出包括宝马汽车的 XML

0 投票
1 回答
1004 浏览

groovy - Groovy XMLSlurper 更新文档以匹配模式

我遇到了一个问题,我似乎无法解决问题,希望你们中的一些知识渊博的专家可以提供解决方案。

我有一个包含序列的 XSD 文档。如您所知,这意味着所有元素必须以指定的顺序出现。我需要使用它,因为其中一些也是可选的(minOccurs = "0")。

这是模式的简化部分:

XML 文档的相关部分:

我需要能够做两件事:

  1. 如果元素存在,则更新其值。例如,将结果代码“005009”的enteredEmployeeId 值更改为“EntVal”。这需要确定该元素是否存在。
  2. 如果元素不存在,请将其添加到将根据架构通过验证的位置。例如,为 resultCode“005025”添加 resultReporter 和输入的EmployeeId。请注意,如上面的 XML 片段中所示,可能存在也可能不存在可选元素。

我已经能够在“结果”节点的末尾添加一个节点,但无法让查找工作更新,也无法将节点插入到正确的位置以满足 XSD。这是代码:

我正在寻找这样的 XML 输出(请注意,第一个结果的值已更新,第二个已插入 - 但在正确的位置......那里也可能有其他元素!):

所以:谁能告诉我如何使这项工作?谢谢!标记

0 投票
1 回答
1117 浏览

groovy - XMLSlurper appendNode 没有看到变化

我在使用 XMLSlurper 更新 XML 文档时遇到了麻烦。大多数事情都有效,但在某些情况下,“查找”找不到我刚刚附加的节点(appendNode)。新节点在处理结束时就在那里,但在我添加子节点时找不到。

我发现一篇关于 XMLSlurper 的帖子说找到新节点需要再次调用 parseText 和/或 StreaMarkupBuilder(见下文)。真的?!这看起来很笨拙,以至于我想我会在 SO 上进行验证。

这是一个代码片段。即使刚刚添加了节点,“查找”也会得到 NoChildren。

“appendNode 不会直接修改 slurped 文档。当使用 StreamingMarkupBuilder 写出文档时,会“即时”应用编辑。” http://markmail.org/message/5nmxbhwna7hr5zcq#query:related%3A5nmxbhwna7hr5zcq+page:1+mid:bkdesettsnfnieno+state:results

为什么我找不到我的新节点?!

0 投票
1 回答
1036 浏览

groovy - Groovy XMLSlurper appendNode - 如何强制它生效?

我知道在使用 Groovy 的 XMLSlurper 和 StreamingMarkupBuilder 时,XML 文档的更改不会立即发生。但是,每当我更改文档时,我都不乐意进行大量处理。我让它工作的唯一方法是如果我这样做:

每次我追加一个新节点。一定有更好的方法!任何人都可以帮忙吗?

0 投票
1 回答
541 浏览

groovy - groovy 中的 XmlSlurper 和 http.get

我首先使用 http.get 保存一个 txt 文件:

然后在 XmlSlurper().parse 中的 outputFileName 中使用新创建的文件,如下所示:

但是在执行 new XmlSlurper().parse(inputFile) 时出现错误:

我注意到使用 http.get 创建的文本文件 outputFileName 似乎是 HTML 文件而不是 XML 文件。所以我将它应该包含的 XML 代码复制并粘贴到 outputFileName 中,跳过了代码的第一部分,只运行了 XmlSlurper().parse() 位并且它工作。

outputFileName 应该是一个 xml 文件吗?它有很多 HTML 标签。

提前致谢!:D

0 投票
2 回答
656 浏览

groovy - Jsoup vs groovy XmlSlurper?

我正在为我的应用程序解析一些 xml 内容(基于 groovy),我被困在必须在 JSoup 和 groovy 的原生 XMLSlurper 之间进行选择的地方。

解析的 RSS 提要为中等大小,不超过 25 项。所以被解析的内容的大小既不会太多也不会太少。

尽管内容大小适中,但内容的解析会发生多次。那么在开销和速度方面,两者中哪一个是更好的选择呢?

0 投票
2 回答
27136 浏览

xml - Groovy XmlSlurper 与 XmlParser

我在这个主题上搜索了一段时间,也发现了一些结果,我将在帖子末尾提到。对于下面列出的案例,有人可以帮我准确回答这三个问题吗?

  1. 对于哪些使用 XmlSluper 的用例比 XmlParser 更有意义,反之亦然(从 API/语法的易用性的角度来看)?

  2. 哪个内存效率更高?(看起来像 Slurper)

  3. 哪一个更快地处理 xml?

案例一。当我必须读取 xml 中的几乎所有节点时?

案例 B。当我只需要读取几个节点时(比如使用 gpath 表达式)?

案例c。当我必须更新/转换 xml 时?

前提是 xml 文档不是微不足道的(具有深度级别和 xml 大小)。

资源

http://www.tutkiun.com/2009/10/xmlparser-and-xmlslurper.html状态:

XMLParser 和 XMLSlurper 的区别:

XMLParser 和 XMLSlurper 在用于简单阅读时有相似之处,但当我们将它们用于高级阅读和处理其他格式的 XML 文档时,两者之间存在差异。

XMLParser 在解析文档后存储中间结果。但另一方面,

XMLSlurper 在处理 XML 文档后不存储内部结果。

在处理解析的信息时,真正的、根本的差异变得明显。那是在流式传输场景中使用直接就地数据操作和处理进行处理时。

http://groovy.dzone.com/news/john-wilson-groovy-and-xml

groovy 文档(XmlParserXmlSlurper)和 groovy 的网站很好地解释了它们(这里这里),但在解释上述问题方面做得不好。

0 投票
3 回答
4741 浏览

xml - 如何在使用 XmlSlurper 解析 xml 时读取连字符的属性名称(例如 model_name)

我试图在 Groovy 中使用 XmlSlurper 解析 XML 时读取属性。当我尝试读取连字符属性model-number时,出现异常。