对于“raw”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
如果所有的东西失败,你可以换一样卷曲或wget的一个操作系统实用程序(如关于蒂姆斯答案)的文档。围绕wget的一个简单的包装可能看起来像这样(卷曲会类似):
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的名称。在这种情况下,我不会和hxDoc:LOAD失败。 – Corwin
这与解析XML有关,对吧?我不完全认为我明白你想要做什么。也许你可以澄清一点?包括例子总是有帮助的! – Jensd
不,它无法从'hXDoc:LOAD(“file”,“http:// myurl/paging $ 1,1”,TRUE)'上从源代码获取xml。如果我将这个URL粘贴到Web浏览器中,我会在屏幕上获得输出XML。现在,如果我尝试你的例子与我的其他来源,其中有一个XML名称 - 'hXDoc:LOAD(“文件”,“http://myotherurl/products.xml”,TRUE)'然后它的作品。我用'hXDoc:SAVE(...)'保存x-doc,并让现有的SAX解析器接管。我认为问题在于我没有访问该远程系统上的实际文件,而是调用了将生成的xml反馈回的Web服务...如果那有意义的话。 – Corwin