gpt4 book ai didi

xml - Openedge - 从 URL 读取 XML

转载 作者:数据小太阳 更新时间:2023-10-29 03:02:41 27 4
gpt4 key购买 nike

我需要从 URL 读取 XML 文件。如果文件实际存在,我没有问题。然后我使用 SAX 阅读器解析它。

现在我需要从 URL 读取 XML 文件 - 两次。

第一次需要从http://someurl/paging$1,1 中获取,然后从文档头部的total-items 中提取值。

之后,我需要从同一个 url 获取 XML,只是将最后一个 1 替换为 total-items 的值。通过这种方式,我可以获得所有可供我使用的元素。

现在我一开始就被难住了。如何在从 URL 读取 XML 方面取得进展?我看到有一个 READ-XML() 选项,但那个选项将它存储在临时表中。

使用 Progress Openedge 版本。 11

最佳答案

对于“原始”xml 支持,您可以使用 X-DOCUMENT 句柄。

DEFINE VARIABLE hXDoc AS HANDLE      NO-UNDO.
CREATE X-DOCUMENT hXDoc.
hXDoc:LOAD("file","http://someurl/paging$1,1", TRUE).
/* Here you need to parse */
DELETE OBJECT hXDoc.

根据 xml 文档的结构,您可以将 READ-XML 与临时表或数据集一起使用,以将数据直接加载到其中。但是你需要先定义数据集。这通常不适用于动态创建的项目。

查看有关 xml 的文档 here

如果一切都失败了,你可以包装一个像 curl 或 wget 这样的操作系统实用程序(关于 Tims 的回答)。 wget 的简单包装器可能如下所示(curl 类似):

DEFINE INPUT  PARAMETER pcUrl     AS CHARACTER   NO-UNDO.
DEFINE INPUT PARAMETER pcPrefix AS CHARACTER NO-UNDO.
DEFINE OUTPUT PARAMETER pcFile AS CHARACTER NO-UNDO.

pcFile = "wget." + pcPrefix + "." + STRING(TODAY,"999999") + REPLACE(STRING(TIME,"HH:MM:SS"),":","") + "-" + STRING(RANDOM(0,1000),"9999").

OS-COMMAND SILENT VALUE("wget '" + pcUrl + "' -o /dev/null -O /tmp/" + pcFile).

关于xml - Openedge - 从 URL 读取 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22879567/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com