问题标签 [streamingmarkupbuilder]

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 回答
979 浏览

groovy - 如何使用 StreamingMarkupBuilder 在 Groovy 中将节点动态添加到 XML

我正在尝试使用 Groovy 动态创建 XML 文件。我对一切工作的简单性感到满意,但我很难理解闭包和委托背后的整个机制。虽然添加具有固定名称的属性和子节点似乎很容易,但添加具有动态名称的节点似乎是一种特殊情况。

我的用例是创建一个 _rep_policy 文件,可以在 CQ5 中使用。

处理集合工作正常,但生成名称......

导入 groovy.xml.StreamingMarkupBuilder 导入 groovy.xml.XmlUtil

0 投票
1 回答
1359 浏览

xml - 在 Groovy StreamingMarkupBuilder 的输出中添加换行符

我正在 Groovy 中创建一个巨大的 xml 文件。我正在使用 StreamingMarkupBuilder,因为常规的 MarkupBuilder 使我耗尽了 Java 堆空间。我正在寻找一种在 StreamingMarkupBuilder 中插入换行符或在创建流时对其进行解析的方法。我无法将整个流写入变量,它太大了。这是我正在做的事情的近似值:

如果您有任何澄清问题,请告诉我,我很高兴与您合作。

0 投票
2 回答
1139 浏览

xml - 为什么 StreamingMarkupBuilder 在编写大型文档方面比 MarkupBuilder 表现更好

我在几个地方读到 StreamingMarkupBuilder 比 MarkupBuilder 更适合编写大型 XML 文档。但是,我一直无法找到一个明确的答案来解释为什么会这样。

有人可以解释为什么 StreamingMarkupBuilder 在编写大型文档方面比 MarkupBuilder 表现更好吗?

0 投票
1 回答
1365 浏览

xml - 在 Groovy 中使用 StreamingMarkupBuilder().bind{} 中的字符串变量

对于以下代码:

现在,如果我在上面的代码中有“MyTag('Help Me')”作为字符串 var 并想使用如下所示

是 groovy 的新手,有人帮助我正确实施或找到上述案例的错误吗?如果我必须使用 StreamingMarkupBuilder 和 XmlMarkupBuilder 以外的其他类,请告诉我?请注意,在我的实际场景中,文本变量实际上包含更多嵌套的子节点。

0 投票
1 回答
1713 浏览

java - 从 StreamingMarkupBuilder 内部调用方法

我正在使用 Groovy 的StreamingMarkupBuilder根据几个 SQL 查询的结果动态生成 XML。我想从闭包内部调用一个方法,但标记生成器尝试使用方法名称创建一个 XML 节点。

这是我正在尝试做的一个例子:

这将生成类似于以下内容的 XML:

我已经尝试将方法移出一个类并在该类上静态调用,这也不起作用。

由于 StreamingMarkupBuilder 工作方式的性质,我担心它实际上不可能做到这一点,但我希望它是。

0 投票
0 回答
670 浏览

xml - Groovy XML:如何解析、修改和序列化 GSP 文件的内容。(org.xml.sax.SAXParseException,前缀未绑定)

在我问这个问题之前,我将提供一些关于我实际尝试做的事情的信息:

我需要在我的 grails 项目中重构大量 GSP 文件。在我尝试为此编写自己的 groovy 脚本后——并意识到这对于我目前的任何语言技能水平来说都太过分了——我发现了这篇文章,它对我解析 html 内容有很大帮助。

过了一会儿,我整理了自己的脚本来解析一个 html 文件,再次序列化它并将其保存到一个新文件中。这是我的脚本:

请注意,我不想在我的 GSP 文件中使用 XML 序言;因此,我使用正则表达式删除它(这不是我的问题,但如果有人知道更“时髦”的方式来做到这一点,请告诉我!)

此外,我设置namespacesFeature为 false,因为命名空间对我的目的没有用。

因为这就像 HTML 文件的魅力一样,我想我已经准备好递归地遍历我的文件夹并找到所有具有该名称的 GSP 文件list.gsp并自动重构它们。但是当我尝试用 one 测试它时,由于元素list.gsp的未绑定前缀,序列化失败:gg:set

The prefix "g" for element "g:set" is not bound.

现在,我有点明白我要做的不是 XML 解析和序列化的常规目的。但就我而言,我不仅希望禁用命名空间功能,还希望解析器忽略所有 GSP 标记并将它们视为常规的开始和结束标记;换句话说,忽略任何标签中的双点。

我关心的另一件事是表达语言,例如<%@ page import="<class>" %>. 现在我刚刚收到前面提到的异常,但这可能也需要解决。

非常感谢任何帮助。

0 投票
0 回答
265 浏览

xml - Groovy StreamingMarkupBuilder:: 绑定前评估

我正在使用 StreamingMarkupBuilder 生成 XML。我试图考虑在我的数据中有错误导致 NullPointerException 的情况。这就是我的数据当前的构建方式:

当我在 buildMetadata 中获得 NPE 时,该过程中途停止,生成无效的 XML。

我需要的是不包括错误的记录,所以我正在尝试这样的事情:

所以在我的方法中,我尝试分解添加到主要结构中的部分,这样我就可以忽略错误的记录。

评估是.bind()随叫随到的,这已经太晚了。def output = new StreamingMarkupBuilder().bind(single_rec_builder)如果我尝试更早地强制评估,通过在我得到命名空间错误之前添加类似的东西mkp.bind(),因为这些是在 mkp 上定义的。是否有某种“空运行”或另一种更好的方法来解决这个问题?

0 投票
1 回答
90 浏览

xml - 在groovy中定义XML时如何格式化数据?

我对 Groovy 很陌生,在定义 xml 时找不到在 groovy 中格式化/编辑数据的正确方法。我想将我的日期格式化为某种自定义格式,但我不能从这个闭包中调用任何方法,所以以下失败:

谢谢

0 投票
2 回答
661 浏览

xml - 使用 Groovy 构建 XML

我需要从每个标签中删除“tei:”。我的原始 xml 如下所示:

当我运行我的脚本时,我得到了相同的输出,但每个标签中都有“tei:”:

我正在尝试为每一行添加一个不用作标题且不标记标尺更改的值。我的代码是:

如何防止我的脚本对我的 xml 文件进行这种不需要的更改。

0 投票
1 回答
321 浏览

groovy - 使用 groovy 构建 xml 和合并 CDATA xml

我有 mule 流,它将 xml 存储在会话变量中。我希望将此 xml 插入在 groovy 中生成的 xml 中。

我的会话变量看起来像#[sessionVars.shippingdetails]

这个会话变量有<a><Subject1>science</Subject1><Subject2>Maths</Subject2></a>

当我在我的 xmlmarkup 构建器中使用会话变量时,如下所示。我收到错误groovy.lang.GroovyRuntimeException: Namespace prefix: CDATA is not bound to a URI (javax.script.ScriptException). Message payload is of type: CaseInsensitiveHashMap (org.mule.api.transformer.TransformerMessagingException). Message payload is of type: CaseInsensitiveHashMap

因此我的输出 xml 应该如下所示。