所以这应该非常简单。我试图从URL中的XML文件中获取数据并将其解析为临时表,以便可以在程序的其余部分中使用这些数据。我已经编写了代码,但是最后,DISPLAY PAPEL DESCRICAO.
没有显示任何内容。难道我做错了什么?带有XML链接的整个代码:
DEF TEMP-TABLE CMA NO-UNDO
FIELD PAPEL AS CHAR
FIELD DESCRICAO AS CHAR
FIELD ULTIMO AS DEC
FIELD DIFERENCIAL AS DEC
FIELD VARIACAO AS DEC
FIELD FECHANT AS DEC
FIELD COMPRA AS DEC
FIELD MINIMA AS DEC
FIELD MAXIMA AS DEC
FIELD VENCIMENTO AS INT
FIELD HORA AS CHAR
FIELD DATA AS DATE.
DEF VAR cSourceType AS CHAR NO-UNDO.
DEF VAR cFile AS CHAR NO-UNDO.
DEF VAR cReadMode AS CHAR NO-UNDO.
DEF VAR cSchemaLocation AS CHAR NO-UNDO.
DEF VAR lOverrideDefaultMapping AS LOGICAL NO-UNDO.
DEF VAR cFieldTypeMapping AS CHAR NO-UNDO.
DEF VAR cVerifySchemaMode AS CHAR NO-UNDO.
DEF VAR lReturn AS LOGICAL NO-UNDO.
ASSIGN
cSourceType = "FILE"
cFile = "http://sfeed-cot01.cma.com.br/clientes/cocamar/cbot.xml"
cReadMode = "EMPTY"
cSchemaLocation = ?
lOverrideDefaultMapping = ?
cFieldTypeMapping = ?
cVerifySchemaMode = ?.
lReturn = TEMP-TABLE CMA:READ-XML(cSourceType, cFile, cReadMode,
cSchemaLocation, lOverrideDefaultMapping, cFieldTypeMapping,
cVerifySchemaMode).
IF lReturn THEN
FOR EACH CMA NO-LOCK:
DISPLAY CMA.PAPEL CMA.DESCRICAO.
END.
非常感谢您的帮助。
超级关闭。 CMA不对应于表,而是对应于在这种情况下可以由Prodataset表示的容器标签。而是只使用“ QUOTES”。
我不会在生产中使用这种xml,如果源关闭等,您可能没有任何方法可以干预。我会以其他方式下拉xml,然后加载它。
但这是另一个故事...
DEF TEMP-TABLE QUOTES NO-UNDO
FIELD PAPEL AS CHAR
FIELD DESCRICAO AS CHAR
FIELD ULTIMO AS DEC
FIELD DIFERENCIAL AS DEC
FIELD VARIACAO AS DEC
FIELD FECHANT AS DEC
FIELD COMPRA AS DEC
FIELD MINIMA AS DEC
FIELD MAXIMA AS DEC
FIELD VENCIMENTO AS INT
FIELD HORA AS CHAR
FIELD DATA AS DATE.
DEF VAR cSourceType AS CHAR NO-UNDO.
DEF VAR cFile AS CHAR NO-UNDO.
DEF VAR cReadMode AS CHAR NO-UNDO.
DEF VAR cSchemaLocation AS CHAR NO-UNDO.
DEF VAR lOverrideDefaultMapping AS LOGICAL NO-UNDO.
DEF VAR cFieldTypeMapping AS CHAR NO-UNDO.
DEF VAR cVerifySchemaMode AS CHAR NO-UNDO.
DEF VAR lReturn AS LOGICAL NO-UNDO.
ASSIGN
cSourceType = "FILE"
cFile = "http://sfeed-cot01.cma.com.br/clientes/cocamar/cbot.xml"
cReadMode = "EMPTY"
cSchemaLocation = ?
lOverrideDefaultMapping = ?
cFieldTypeMapping = ?
cVerifySchemaMode = ?.
lReturn = TEMP-TABLE QUOTES:READ-XML(cSourceType, cFile, cReadMode,
cSchemaLocation, lOverrideDefaultMapping, cFieldTypeMapping,
cVerifySchemaMode).
DISP lReturn.
IF lReturn THEN
FOR EACH QUOTES NO-LOCK:
DISPLAY QUOTES.PAPEL QUOTES.DESCRICAO.
END.