Kbase 20184: Can the 4GL create an XML document where each element ends with a CR/LF?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  03/09/2008 |
|
Status: Verified
GOAL:
How to format XML so each element is on its own line
GOAL:
How to use the built-in XML functions to format a document for reading
GOAL:
Can the 4GL create an XML document where each element ends with a CR/LF?
GOAL:
Can you save an XML document so that it is formatted for reading?
FACT(s) (Environment):
Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
FIX:
DEF VAR xDoc AS HANDLE NO-UNDO.
DEF VAR xRoot AS HANDLE NO-UNDO.
DEF VAR xChild AS HANDLE NO-UNDO.
DEF VAR xChild2 AS HANDLE NO-UNDO.
DEF VAR xText AS HANDLE NO-UNDO.
DEF VAR xFormat AS HANDLE NO-UNDO.
CREATE X-DOCUMENT xDoc.
CREATE X-NODEREF xRoot.
CREATE X-NODEREF xChild.
CREATE X-NODEREF xChild2.
CREATE X-NODEREF xText.
CREATE X-NODEREF xFormat.
/* Create ROOT */
xDoc:CREATE-NODE(xRoot, "first", "element").
xDoc:APPEND-CHILD(xRoot).
/* Create second child */
xDoc:CREATE-NODE(xChild, "second", "element").
xDoc:CREATE-NODE(xFormat, ?, "text").
xFormat:NODE-VALUE = "~n~t".
xRoot:APPEND-CHILD(xFormat).
xRoot:APPEND-CHILD(xChild).
xDoc:CREATE-NODE(xFormat, ?, "text").
xFormat:NODE-VALUE = "~n".
xRoot:APPEND-CHILD(xFormat).
/* Create third child */
xDoc:CREATE-NODE(xChild2, "third", "element").
xDoc:CREATE-NODE(xFormat, ?, "text").
xDoc:CREATE-NODE(xText, ?, "text").
xText:NODE-VALUE = "value".
xChild2:APPEND-CHILD(xText).
xFormat:NODE-VALUE = "~n~t~t".
xChild:APPEND-CHILD(xFormat).
xChild:APPEND-CHILD(xChild2).
xDoc:CREATE-NODE(xFormat, ?, "text").
xFormat:NODE-VALUE = "~n~t".
xChild:APPEND-CHILD(xFormat).
/* Save document */
xDoc:ENCODING = "utf-8".
xDoc:SAVE("file", "pretty.xml").
DELETE OBJECT xText.
DELETE OBJECT xFormat.
DELETE OBJECT xChild.
DELETE OBJECT xChild2.
DELETE OBJECT xRoot.
DELETE OBJECT xDoc.