问题标签 [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.
file - 如何在 groovy 中读取 XML 文件?
我正在尝试使用以下代码行以 groovy 读取 XML 文件
尽管我的 C 驱动器中有文件,但我收到文件未找到错误..那里有任何语法错误吗?..
预先感谢,
拉克西米
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 中运行了它。
xml - XmlSlurper.appendNode 不改变大小
我使用 XmlSlurper 处理 XML。在我更新它之前它工作正常。appendNode 不反映大小。
结构更新后如何使用 XmlSlurper?
XML 定义:
代码女巫失败:
打印出包括宝马汽车的 XML
groovy - Groovy XMLSlurper 更新文档以匹配模式
我遇到了一个问题,我似乎无法解决问题,希望你们中的一些知识渊博的专家可以提供解决方案。
我有一个包含序列的 XSD 文档。如您所知,这意味着所有元素必须以指定的顺序出现。我需要使用它,因为其中一些也是可选的(minOccurs = "0")。
这是模式的简化部分:
XML 文档的相关部分:
我需要能够做两件事:
- 如果元素存在,则更新其值。例如,将结果代码“005009”的enteredEmployeeId 值更改为“EntVal”。这需要确定该元素是否存在。
- 如果元素不存在,请将其添加到将根据架构通过验证的位置。例如,为 resultCode“005025”添加 resultReporter 和输入的EmployeeId。请注意,如上面的 XML 片段中所示,可能存在也可能不存在可选元素。
我已经能够在“结果”节点的末尾添加一个节点,但无法让查找工作更新,也无法将节点插入到正确的位置以满足 XSD。这是代码:
我正在寻找这样的 XML 输出(请注意,第一个结果的值已更新,第二个已插入 - 但在正确的位置......那里也可能有其他元素!):
所以:谁能告诉我如何使这项工作?谢谢!标记
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
为什么我找不到我的新节点?!
groovy - Groovy XMLSlurper appendNode - 如何强制它生效?
我知道在使用 Groovy 的 XMLSlurper 和 StreamingMarkupBuilder 时,XML 文档的更改不会立即发生。但是,每当我更改文档时,我都不乐意进行大量处理。我让它工作的唯一方法是如果我这样做:
每次我追加一个新节点。一定有更好的方法!任何人都可以帮忙吗?
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
groovy - Jsoup vs groovy XmlSlurper?
我正在为我的应用程序解析一些 xml 内容(基于 groovy),我被困在必须在 JSoup 和 groovy 的原生 XMLSlurper 之间进行选择的地方。
解析的 RSS 提要为中等大小,不超过 25 项。所以被解析的内容的大小既不会太多也不会太少。
尽管内容大小适中,但内容的解析会发生多次。那么在开销和速度方面,两者中哪一个是更好的选择呢?
xml - Groovy XmlSlurper 与 XmlParser
我在这个主题上搜索了一段时间,也发现了一些结果,我将在帖子末尾提到。对于下面列出的案例,有人可以帮我准确回答这三个问题吗?
对于哪些使用 XmlSluper 的用例比 XmlParser 更有意义,反之亦然(从 API/语法的易用性的角度来看)?
哪个内存效率更高?(看起来像 Slurper)
哪一个更快地处理 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 文档(XmlParser、XmlSlurper)和 groovy 的网站很好地解释了它们(这里和这里),但在解释上述问题方面做得不好。
xml - 如何在使用 XmlSlurper 解析 xml 时读取连字符的属性名称(例如 model_name)
我试图在 Groovy 中使用 XmlSlurper 解析 XML 时读取属性。当我尝试读取连字符属性model-number
时,出现异常。